【Java】《Java编程思想》笔记-第五章 初始化与清理
来源:互联网 发布:开发者头条 知乎 编辑:程序博客网 时间:2024/06/05 13:46
5.1 用构造器确保初始化【initialize()】
- 构造器采用与类相同的名字
- 在Java中,初始化和创建捆绑在一起,不能分离
- 为了让方法名相同而形式参数不同的构造器同时存在,必须用到方法重载
- 区分重载方法:每个重载的方法都必须有一个独一无二的参数类型列表
- 涉及基本类型的重载:方法接受较小的基本类型作为参数。如果传入的实际参数较大,就得通过类型转换来执行窄化转换。如果不这样做,编译器就会报错。
- 以返回值区分重载方法:❌
- 又称“无参”构造器
- 只能在方法内部使用,表示对“调用方法的那个对象”的引用。注意的是,如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。当前方法中的this引用会自动应用于同一类的其他方法。只有当需要明确指出对当前对象的引用时,才需要使用this关键字。
- 在构造器中调用构造器:为一个类谢了多个构造器,有时可能想在一个构造器中调用另一个构造器,以避免重复代码。通常写this的时候都是指“这个对象”或者“当前对象”,而且它本身表示对当前对象的引用。如果为this添加了参数列表,将产生对符合此参数列表的某个构造器的明确调用。编译器禁止在出构造器之外其他任何方法中调用构造器。
- static的含义:static方法就是没有this的方法。
- finalize():一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法,就能在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
- c++中,对象一定会被销毁
- Java中,①对象可能不被垃圾回收;②垃圾回收并不等于“析构”
- finalize()用途:③垃圾回收只与内存有关;也就是说使用垃圾回收器的唯一原因是了回收程序不再使用的内存。finalize()需求限制到一种特殊情况,即通过某种创建对象方式以外的方式为对象分配了存储空间。→使用了“本地方法”:本地方法是一种在Java中调用了非Java代码的方式。
- 必须实施清理:要清理一个对象,用户必须在需要清理的时刻调用执行清理动作的方法。
- 终结条件
- 垃圾回收器如何工作:对任何”活“的对象,一定能最终追溯到其存活在堆栈和静态存储区之中的引用。
5.6 成员初始化
- 对于方法的局部变量,强制程序员提供一个初始值
- 对于类的数据成员是基本类型的话,保证都会有一个初始值
- 指定初始化
- 可以用构造器来进行初始化。无法阻止自动初始化的进行,它将在构造器被调用之前发生。对于所有基本类型和对象引用,包括在定义时已经制定初值的变量,均成立。
- 初始化顺序:变量定义的先后顺序决定了初始化的顺序
- 静态数据的初始化:无论创建多少个对象,静态数据都只占用一份存储区域。static关键字不能应用于局部变量,因此它职能作用于域。静态初始化只有在必要时刻才会进行。(未完)
0 0
- 【Java】《Java编程思想》笔记-第五章 初始化与清理
- java编程思想 第五章初始化与清理
- JAVA编程思想-第五章 初始化与清理
- Java编程思想第五章总结--初始化与清理
- Java编程思想第五章个人总结初始化与清理
- 《Java编程思想》第五章 初始化与清理
- Java编程思想 ——第五章 初始化与清理
- java编程思想读书笔记 第五章 初始化与清理
- java编程思想读书笔记----第五章 初始化与清理
- java编程思想-第五章-初始化与清理
- Java编程思想——第五章 清理与初始化
- java编程思想学习笔记(第五章:初始化与清理)
- 《JAVA编程思想》笔记-初始化与清理
- JAVA编程思想笔记--初始化与清理
- JAVA编程思想学习第五篇の初始化与清理
- 《java编程思想》第五章:初始化和清理
- Java编程思想笔记——第五章 初始化和清理
- 《Java 编程思想》--第四章:控制执行流程,第五章:初始化与清理
- leetcode 136. Single Number
- 寻找和为定值的多个数
- python爬虫——爬取知乎上自己关注的问题
- 《SpringMvc》---实现JSON数据交互
- eclipse无法设置ndk路径
- 【Java】《Java编程思想》笔记-第五章 初始化与清理
- Android Studio导入项目时一直Building “xx” Gradle project info
- eclipse 使用maven 集成springboot + retrofit
- 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转)
- hihocoder
- Linux命令之Sed详解
- 题目1061:成绩排序
- 线程和进程
- 使用Swift 3.0实现原生的MD5加密