第5章 初始化与清理

来源:互联网 发布:在哪看淘宝自动售货 编辑:程序博客网 时间:2024/05/18 01:52

1. 构造器(constructor)是一种特殊类型的方法,因为它没有返回值,这与返回值为空(null)不同。


2. 为何需要重载方法:①相同的词需要表达不同的含义;②构造器的存在必须要用到方法重载。


3. 重载方法有一个独一无二的参数类型列表,以此来互相区分,同时也可以用返回值来区分,但是如果编译器不能根据语境判断出语义,则不能通过编译。


4.涉及基本类型的重载:如果传入的数据类型(实参)小于方法中声明的形式参数类型,实际数据类型就会被提升(char型略有不同,如果无法找到恰好接受char参数的方法,就会把char直接提升到int型)


5. 进一步理解方法调用:
这是内部的表示形式,不能这么编写但有助于理解。


6. 编码习惯:只有当需要明确指出对当前对象的引用时,才需要使用this关键字。


7. this的另一个用途:在构造器中调用构造器,以避免重复代码,但需要遵循规则:①尽管可以用this调用一个构造器,但却不能调用两个;②必须将构造器调用置于最起始处; ③除构造器之外,编译器禁止在其他任何方法中调用构造器。


8. Java的垃圾清理机制:P87(仍需理解)。牢记三点:①对象可能不被垃圾回收;②垃圾回收并不等于“析构”; ③垃圾回收只与内存有关。finalize()方法的使用尚未明确。


9. 初始化的过程就是引用得到对象的过程


10. 无法阻止自动初始化的进行,它将在构造器被调用之前发生;初始化顺序:即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。


11. 静态初始化只有在必要时刻才会进行


12. 显式的静态初始化(静态块)(只进行一次)

13. 非静态实例初始化(实例初始化子句)(在构造器之前执行)

14. 数组的赋值:

这里的a2=a1只是复制了引用,所以a1和a2是相同数组的别名


15. 数组元素中的基本数据类型值会自动初始化成空值。


16. Java支持这样对数组进行初始化,同时并没有引用,只是申请了一个对象:

17. 可变参数列表还需要进一步理解。编码习惯:你应该总是只在重载方法的一个版本上使用可变参数列表,或者压根就不是用它。


18. 枚举类型enum是一个类,并且有自己的方法,很大的用处是和switch相组合。


1 0
原创粉丝点击