您的位置:首页 > 编程语言 > Java开发

【Java】《Java编程思想》笔记-第五章 初始化与清理

2017-03-15 15:06 381 查看
5.1 用构造器确保初始化【initialize()】

构造器采用与类相同的名字

在Java中,初始化和创建捆绑在一起,不能分离
5.2 方法重载

为了让方法名相同而形式参数不同的构造器同时存在,必须用到方法重载

区分重载方法:每个重载的方法都必须有一个独一无二的参数类型列表
涉及基本类型的重载:方法接受较小的基本类型作为参数。如果传入的实际参数较大,就得通过类型转换来执行窄化转换。如果不这样做,编译器就会报错。
以返回值区分重载方法:❌
5.3 默认构造器

又称“无参”构造器
5.4 this关键字

只能在方法内部使用,表示对“调用方法的那个对象”的引用。注意的是,如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。当前方法中的this引用会自动应用于同一类的其他方法。只有当需要明确指出对当前对象的引用时,才需要使用this关键字。

在构造器中调用构造器:为一个类谢了多个构造器,有时可能想在一个构造器中调用另一个构造器,以避免重复代码。通常写this的时候都是指“这个对象”或者“当前对象”,而且它本身表示对当前对象的引用。如果为this添加了参数列表,将产生对符合此参数列表的某个构造器的明确调用。编译器禁止在出构造器之外其他任何方法中调用构造器。
static的含义:static方法就是没有this的方法。
5.5 清理:总结处理和垃圾回收

finalize():一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法,就能在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
c++中,对象一定会被销毁
Java中,①对象可能不被垃圾回收;②垃圾回收并不等于“析构”
finalize()用途:③垃圾回收只与内存有关;也就是说使用垃圾回收器的唯一原因是了回收程序不再使用的内存。finalize()需求限制到一种特殊情况,即通过某种创建对象方式以外的方式为对象分配了存储空间。→使用了“本地方法”:本地方法是一种在Java中调用了非Java代码的方式。
必须实施清理:要清理一个对象,用户必须在需要清理的时刻调用执行清理动作的方法。
终结条件
垃圾回收器如何工作:对任何”活“的对象,一定能最终追溯到其存活在堆栈和静态存储区之中的引用。

5.6 成员初始化

 对于方法的局部变量,强制程序员提供一个初始值

对于类的数据成员是基本类型的话,保证都会有一个初始值
指定初始化
5.7 构造器初始化

可以用构造器来进行初始化。无法阻止自动初始化的进行,它将在构造器被调用之前发生。对于所有基本类型和对象引用,包括在定义时已经制定初值的变量,均成立。
初始化顺序:变量定义的先后顺序决定了初始化的顺序
 静态数据的初始化:无论创建多少个对象,静态数据都只占用一份存储区域。static关键字不能应用于局部变量,因此它职能作用于域。静态初始化只有在必要时刻才会进行。(未完)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java