天天看点

java编程思想5-初始化与清理

1.构造器

a. 构造器确保操作对象之前从初始化
           

2.方法重载

a. 允许方法名相同二形参不同的方法存在,参数顺序不同也视为不同的方法
b. 涉及基本类型的重载:如果传入数据类型小于方法声明的形参类型,实际数据类型就会提升;如果传入数据类型大于方法的形参类型,就需要类型转换来执行窄化转换,不这样做编译会报错
           

3. this关键字

a. this关键字只能在方法内部使用,表示对“调用方法的那个对象的引用”,this指这个对象或当前对象,本身表示对当前对象的引用
b. 由于参数名称和数据成员名称相同,this.xx可以代表数据成员
           

static含义

a. static方法就是没有this的方法,在static方法内部不能调用非静态方法,static方法不是通过“向对象发送消息”的方式来完成的
           

垃圾回收

a. 引用计数:每个对象含有一个引用计数器,引用连接对象时,引用加1。如果对象间存在循环引用可能会出现,对象应该被回收,但引用计数不为0。
b. 如果从堆栈和静态存储区开始,遍历所有引用,就能找到所有 活的对象,然后是此对象包含的 所有引用,这样可以解决引用计数的缺陷。停止-复制计数,先暂停程序运行,然后将所有存活的对象从当前堆复制到另一个堆,新堆里面空间排列是紧凑的,旧堆里面剩下的都是垃圾。这种效率低,首先需要两个堆,然后有时候只会产生少量垃圾,然而这个 回收器 还是会进行复制,造成浪费。
c. 标记-清扫,从堆栈和静态存储区出发,遍历所有引用,找出所有存活对象 ,给对象标记,不会回收,标记完成后,进行清理工作