Java编程思想第五章个人总结初始化与清理

构造器确保初始化 构造方法 代参数不带参数的

 区分重载方法

  根据参数类型区分

  如果传入的数据类型小于方法中生命的形式参数类型,实际的数据类型就会提升。 char 除外 如果无法恰好接受char就直接提升到int了

根据返回值区分重载方法行不通。

  this 关键字

  返回对当前对象的引用的时候用this 

  class A{

  A  a(){

   return  this;

}

比较容易在一条语句里对同一个对象执行多次操作 如:


 A a= new A();

 a.a().a().a()

在构造器中调用构造器: 在构造器中 我更喜欢叫 构造方法  中 this将产生对复合此参数列表的某个构造方法的明确调用。

A(){

int x=0;

this.(x)

A(int a){

}

注意 this只能用一次。



清理 :终结清理与垃圾回收

垃圾回收 被虐了千百边的垃圾回收,我把这搞懂是不是能说蒙面试官哈哈哈

  finalize方法 一旦垃圾回收器准备释放对象占有的存储空间,要首先调用finalize方法,并且在下一次垃圾回收动作发生时才会真正回收对象占用的内存,finalize就能在垃圾回收的时刻做好一些重要的清理工作。

  finalize 时对象可能不被垃圾回收;

  垃圾回收并等于“析构” (C++销毁对象必须用到析构函数)

 垃圾回收只与内存有关。

 无论垃圾回收还是终结 都不保证一定会发生,如果java虚拟机不面临内存耗尽的情形 它是不会浪费时间去执行垃圾回收回复内存的。

 finalize 作用对象终结条件的验证,

 垃圾回收器的工作原理 

  很好玩的东西 垃圾回收器对于提高对象的创建速度具有明显的效果。java从堆分配空间的速度可以和其他语言在堆栈上分配空间的速度相媲美。

 java 堆 的实现像传送带,没创建一个对象 就往前移动一个格子。

 java虚拟机采用的一种自适应的垃圾回收技术。 有一种做法是停止-复制 他不属于后台回收模式。将所有的存活的对象从当前堆分配到新堆紧凑排列 ,没有被复制的就是垃圾。 对于这种复制式回收期效率会降低, 因为你需要两个堆来回倒腾,再就是因为复制,程序进入稳定状态可能只会产生少量垃圾或者没有,复制式回收器仍然会将所有内存自一处复制到另一处,这是浪费。 一些java虚拟机会机型检查,要是没有垃圾产生就会进入标记-清扫模式,标记-清扫模式速度相当慢,但是当你知道只会产生少量垃圾甚至不产生垃圾的时候就相当快了。

 有了 块之后 垃圾回收器就会在回收的时候往废弃的块中拷贝对象了,每个块都有相应的代数来记录他是否存活。某块被引用代数会增加。 垃圾回收期将对上次回收动作之后新分配的块进行整理,有助于处理大量短命的对象。

 垃圾回收器会定期进行完整的清理动作--大型对象不会被复制(这是其代数会增加)内含小型对象的那些块则被复制清理。

Java虚拟机会进行监视,如果所有对象都很稳定,垃圾回收期效率降低的话就会切换到标记-清扫模式;同样,当堆空间出现大量碎片,就会切换到停止--复制模式。这就是自适应技术。 

 自适应的、分代的、停止-复制、标记-清扫式垃圾回收器。

“即时“编译器技术 代码每次执行的时候都会做一些优化,执行的越多速度越快。


构造器初始化

 变量定义的先后顺序决定了初始化的顺序

public class A {
A(int x){
System.out.println(""+x+"");
}
}

public class B {
A a1=new A(1);
B(){

System.out.println("B");
a3 = new A(33);
}
A a2= new A(2);
A a3;
void f(){

   System.out.println("f()");
   

}
A a4=new A(4);
  
}

public class C {
public static void main(String[] args) {
B b= new B();
b.f();
}

}

运行结果竟然是

1
2
4
B
33
f()

我以前以为只会出现1 f() 呢受教了。

静态初始化只有在必要的时刻进行,静态对象不会再次被初始化

然后讲了下枚举类型枚举类型的实例是常量

啊 这章好多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值