Java语言基础学习笔记(二)

来源:互联网 发布:java定义数组的方法 编辑:程序博客网 时间:2024/05/22 00:54

1. 在一些编程语言(如C++)中,变量可以持有对象本身-指针和对象的区别。但在Java中,变量只能持有对象的引用。

2. 当实例变量和局部变量命名冲突时,实例变量使用this来访问。

3. Java函数参数传递并非等同于其他语言(如C++)中的引用传递。Java函数中所有参数(对象引用、基本类型)其实都是值传递的。

4. 可以有多个构造函数,构造函数相互调用,使用this()方法。这个this不是值对象的引用,而是一种特殊的语法,此语法只能在构造函数中使用。

5. 可以为实例变量指定初始值,这个初始化发生在对象构建后,构造函数执行前。

6. 除了在声明时初始化实例变量外,还可以在类声明包含初始化块,使用{}包围。

7. 实例变量初始化和初始化块以他们在类声明中出现的先后顺序依次执行,在构造函数体之前执行。

8. 类的静态变量是在其声明时初始化的,有时,你需要额外的初始化工作,可以将其放入静态初始化块。静态初始化块的语法比初始化块多一个static修饰符。静态变量和静态初始化块以他们在类声明中出现的先后顺序依次执行。

9. 可以在对象(实例)上调用静态方法,但这不是一种好的编程风格。

10. 静态方法的一种常见使用场景就是工厂方法。使用工厂方法来构建对象,比直接使用构造函数(new方法)更具控制能力(在返回值的处理上和对象的重用)。

11. 可以存在一个没有名称的默认包,但不推荐使用。

12. 不使用public,也不适用private的类、方法、变量,就可以被同一个包中的所有方法访问。

13. 一个源文件中可以有多个类,但只能有一个是public的。

14. Java的实现者通过操控类加载器来保证不会加载任何以全限定名以java(x)开头的类。如果你也想让自己的包具备类似保护机制,可以将他们放在封闭的JAR文件中,提供一个mainifest进行控制。

15. import指令使用通配符只能导入类,不能导入包,import java.*是非法的。

16. 内部类和静态嵌套类的语法区别只差一个static的,但实际差别巨大。每个内部类对象都持有自己外部类对象的引用。

17. 内部类使用外部类引用的语法为:Outerclass.this

18. 内部类自动持有外部类对象的原因:在构造内部类对象是,实际使用的语法为this.new Innerclass,也可在外部类实例上调用内部类的构造方法 Outer.new Innerclass


原创粉丝点击