初始化与清理

来源:互联网 发布:win32 网络编程 编辑:程序博客网 时间:2024/06/08 00:07

Thinking in Java CH05


方法重载-overloading

同一个类中的行为

构造器

  • 参数顺序
  • 参数类型
    基本数据类型:能从小类型提升至大类型。例:如果无法找到恰好接受char类型的方法,就直接提升至int类型。
  • 无法根据返回值区分重载

this关键字

-只能在方法内部使用,表示对“调用方法的那个对象”的引用。其用法和其他对象引用并无不同。
-return this; 返回对当前对象的引用
-涉及到组合或继承另当别论。

可以在构造器中调用构造器:
- 只能用this调用一个构造器(还存在super())
- 出现在第一句
- 除了在构造器中,编译器禁止在其他方法中调用构造器

static方法就是没有this的方法。不能调用非静态方法和非静态数据成员。static属于类,而this属于对象。


清理:终结处理和垃圾回收

请看《深入理解Java虚拟机》
- 垃圾回收器
- finalize方法

GC只能回收那些通过new分配的对象内存。
其他情况呢?—–finalize方法
finalize
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

垃圾回收器的工作原理
Thinking in java(P129)


成员初始化

局部变量无初始值!!!

char类型的成员变量的初始值是0,即空。

无法阻止自动初始化的发生,它将在构造器初始化之前发生。

初始化的顺序:
成员变量初始化顺序与它们定义顺序有关;而且先默认初始化,再显示初始化,再执行构造器初始化。
当有实例初始化块时,初始化顺序依然跟顺序有关!

静态数据的初始化:
只有一份存储区域,static关键字不能应用于局部变量。
这里写图片描述
这里写图片描述

静态块
首次生成对象,或者访问该类的静态成员时(即使还未生成对象),这段代码执行(仅一次)。
当同时存在静态数据和静态块时,咋办呢? 看顺利。。


数组

可变参数列表

这里写图片描述
这里写图片描述


枚举类型

这里写图片描述
这里写图片描述
这里写图片描述

复杂的使用方法以后再说。

0 0
原创粉丝点击