1.Java中判断是否是垃圾的算法
可达性算法
循环引用问题:引用计数算法
什么样的节点可以作为GC ROOTS (面试问到概率并不大)
2.finalize方法
对象的自我拯救 : 当对象由可达变为不可达时,先变成可恢复状态,此时就 (可能) 会调用finalize 方法
可能:1.子类必须重写该方法
2.该方法至多只能被执行一次
且满足以上两个情况 --> 底层的finalier 线程执行的情况
3.堆
年轻代 : eden , to survivor , from survivor 8 :1 :1
年老代 :1: 2 一共三分
永久带
jvm规范的问题
方法区逻辑上是属于堆的, 但是在实现时,又有个别名叫no-heap
JVM 大小是一个区间 --> 初始大小 --> 最大使用大小
在实际开发过程中通常都是调节成一样的,避免不必要的资源浪费
通常(依据各公司实际情况而定):调节成3/4
Java中的四种引用
1.强引用 : 平时写的代码 new
2.软引用 : 当内存不足发生gc 后,将软引用自动断开,当内存足够时,此时就当成普通引用来使用
3.弱引用 :一旦发生GC时就会被回收无论内存是否够用
4.虚引用 :为每一个对象设置虚引用的唯一目的就是能在这个对象被收集器回收时收到一个系统通知
|
|