美文网首页
java基础

java基础

作者: 蓝色Hippie | 来源:发表于2018-07-28 23:10 被阅读7次

一、.java源程序与编译型运行区别

二、对象和类

对象:对象是类的一个实例,有状态和行为。

类:类是一个模版,它描述了一类对象的状态和行为。

局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后变量自动销毁。局部变量是在栈上分配的。

成员变量:成员变量是定义在类中,方法体之外的变量。这种变量是在创建对象的时候初始化。成员变量可以被类中的方法、构造方法和特定类的语句块访问。成员变量是在堆内存的。

类变量:声明在类中,方法体之外,但必须声明为static类型。类变量存在于方法区。

抽象类:抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。一个类不能同时被abstract和final修饰。如果一个类中包含抽象方法,那么该类一定要声明为抽象类,否则编译出错。抽象类可以包含抽象方法和非抽象的方法。

抽象方法:抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供。抽象方法不能被不能为private,final或者static修饰。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。

总结:

1.引用类型总是被分配到“堆”上,不论是成员变量还是局部

2.基础类型总是分配到它所声明的地方:成员变量在堆内存里,局部变量在栈内存里。 

三、源文件的声明规则

1.一个源文件中只能有一个public类

2.一个源文件可以有多个非public类

3.源文件的名称应该和public类的类名保持一致

4.如果一个类定义在某个包中,那么package语句应该在源文件的首行

5.如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该放在源文件的最前面

6.import语句和package语句对源文件中定义的所有类都有小。在同一源文件中,不能给不同的类不同的包声明。

四  、访问控制

五、关于StringBuffer和StringBuilder类

StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用的对象。两者之间的区别在于:StringBuilder的方法不是线程安全的,不能同步访问,但StringBuilder相对与StringBuffer有速度优势。

六、构造方法

当一个对象被创建时,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但是构造方法没有返回值。通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。不管你定义与否,所有的类都有构造方法,因为java自动提供了一个默认的构造方法,它把所有成员初始化为0,一旦你定义了自己的构造方法,默认的构造方法就会失效。

七、文件流

获得一个输入流对象来读取文件:

1. 利用文件夹  InputStream f=new FileInputStream("c://test.txt");

2.文件对象    File f=new File("c://hello.txt");

InputStream out=new FileInputStream(f);

3.创建目录

string dirname="/tmp/user/java/bin";

File d=new File(dirname);

d.mkdir();//创建一个文件夹 返回ture/false

d.mkdirs();//创建一个文件夹和它的所有父文件夹。

4.读取目录

public class DirList {

    public static void main(String args[]) {

        String dirname = "/tmp";

        File f1 = new File(dirname);

        if (f1.isDirectory()) {

            System.out.println("目录 " + dirname);

            String s[] = f1.list();

            for (int i = 0; i < s.length; i++) {

                File f = new File(dirname + "/" + s[i]);

                if (f.isDirectory()) {

                    System.out.println(s[i] + " 是一个目录");

                } else {

                    System.out.println(s[i] + " 是一个文件");

                }

            }

        } else {

            System.out.println(dirname + " 不是一个目录");

        }

    }

}

5.删除目录java.io.File.delete()

需要注意的是当删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。

递归思想:

public class DeleteFileDemo {

    public static void main(String args[]) {

        // 这里修改为自己的测试目录

        File folder = new File("/tmp/java/");

        deleteFolder(folder);

    }

    // 删除文件及目录

    public static void deleteFolder(File folder) {

        File[] files = folder.listFiles();

        if (files != null) {

            for (File f : files) {

                if (f.isDirectory()) {

                    deleteFolder(f);

                } else {

                    f.delete();

                }

            }

        }

        folder.delete();

    }

}

八、异常处理

要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

    1.检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。

   2. 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。

    3.错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

九、接口

接口,在java中是一个抽象类型,是抽象方法的集合,接口通常以interface开声明。

接口和类的相似点

1.一个接口可以有多个方法

2.接口文件保存在.java.结尾的文件中,文件名使用接口名

3.接口的字节码文件保存在class结尾的文件中

4.接口相应的字节码必须与包名称相匹配的目录结构中

接口与类的区别:

1.接口不能用于实例化

2.接口没有构造函数

3.接口的所有方法必须是抽象方法

4.接口不能包含成员变量,除了static和final变量

5.接口不是被类继承,而是要被类实现

6.接口支持多继承

接口有以下特性:

接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。

接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。

接口中的方法都是公有的。

相关文章

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • Java 集合类原理

    Java基础——HashMap源码分析 Java基础——HashSet源码分析 Java基础——HashTable...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

  • java基础(一)-String、StringBuffer、St

    java基础-String、StringBuffer、StringBuilder java基础小白,初学java,...

网友评论

      本文标题:java基础

      本文链接:https://www.haomeiwen.com/subject/ydlumftx.html