Java GC理解

来源:互联网 发布:3g网络和4g网络的速度 编辑:程序博客网 时间:2024/06/07 00:49
无用的内存对象无法被虚拟机回收
什么是内存泄漏:
  1)内存不在GC回收的掌控之内了。
     那么有几个问题:GC、内存;
(1)什么是垃圾回收机制-----GC?
       1.吃完了自己去把垃圾倒掉  ----------C语言---手动回收内存。
2.吃完直接走人,服务员回收餐具。吃饭的方式比较爽。-----GC
服务员怎么知道他要哪个餐具回收呢?
(投诉)回收的标准低--只要有客户不走--持有了餐具就不回收
GC会找一个合适的时机,一次性回收很多。
-------开发人员的素质。
总结:某个对象不再有任何的引用的时候才会进行垃圾回收
提问:如果某个对象被别的对象引用了,就不能被GC回收吗?
   否。(1)有软引用、弱引用、虚引用;
   (2)最终:该对象一直往上追溯引用,能追溯到GC Root引用,能追溯到GC Root对象是谁
-------------GC回收机制原理是?-------------------------------------
内存有哪些?数据区:方法区、堆内存、栈内存
可以作为GC Root引用点的是?(JVM里有哪些内存不可以被回收的)
       JavaStack中的引用的对象
方法区中静态的引用指向的对象
方法区中常量引用指向的对象
Native方法中JNI引用的对象
Thread----活着的线程
(2)怎么判断是垃圾对象呢?

   这是一个主观的判断。1.GC可以检测到的:2.主观



强引用:直接的对象引用

 -- 软引用:当一个对象只有软引用存在时,系统内存不足时此对象会被gc回收(gc--垃圾回收机制)

 -- 弱引用:当一个对象只用弱引用存在时,此对象会随时被gc回收。


原创粉丝点击