《thinking in java》学习笔记5

初始化与清理
用构造器确保初始化
  • 创建对象时为对象分配存储空间,并调用相应构造器
  • 不接受任何参数的构造器叫做默认构造器、无参构造器
  • 构建器属于一种较特殊的方法类型,因为它没有返回值。这与 void 返回值存在着明显的区别。对于void 返 回值,尽管方法本身不会自动返回什么,但仍然可以让它返回另一些东西。构建器则不同,它不仅什么也不会自动返回,而且根本不能有任何选择
方法重载
  • 每个重载的方法都必须由一个独一无二的参数类型列表
  • 甚至参数顺序的不同也足以区分两个方法
  • 返回值不能区分方法

默认构造器
  • 编译器会自动创建,如果你没有自己写

this关键字
  • 只能在方法内部使用,表示对“调用方法的那个对象”的引用
  • this调用只能调用一个构造器,而且必须位于最起始处
  • static方法的内粗不能调用非静态方法
  • 静态方法可以创建自身的对象

清理:终结处理和垃圾回收
  • 垃圾回收期只是放那些经由new分配的内存
  • finalize工作原理:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用 finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。
  • java对象并非总是被垃圾回收
  • 不该用finalize作为通用清理方法,他不是进行普通清理工作的合适场所
  • finalize可用于终结条件的验证:只要对象中存在没有被适当清理的部分,程序就存在很隐晦的缺陷,finalize可以用来最终发现这种情况,尽管它不总是被调用,但如果某次动作使得缺陷的已发现,那么就可据此找出问题所在
  • System.gc用于强制进行垃圾收集器

成员初始化

构造器初始化
  • 在一个类里,初始化的顺序是由变量在类内的定义顺序决定的。即使变量定义大量遍布于方法定义的中间, 那些变量仍会在调用任何方法之前得到初始化——甚至在构建器调用之前
  • 静态数据只占用一份存储区域
  • 静态初始化只有在必要惊醒时刻才会进行
  • 初始化的顺序:静态对象》非静态对象
  • 构造器实际上也是静态方法
  • 静态块仅执行一次:当首次生成这个类的一个对象时,或者首次访问属于哪个类的静态数据成员时

数据初始化
  • 不允许指定数组大小
  • 直接初始化数组等价于用new,由编译器负责分配空间
  • 一个数组赋值给另一个数组只用复制了一个引用
  • 所有数组都固有一个成员length
  • 如果创建的是非基本类型的数组,那么就创建了引用数组
  • 可变参数列表:method(object... args)
  • getClass方法属于Object的一部分

枚举类型
  • 用大写字母表示
  • enum是个类,并且有自己的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值