JVM垃圾回收机制之引用类型

一:引用的类型

  javac编译器编译源文件后,生成字节码文件,在类加载器加载字节码文件到内存中时,在内存中开辟

空间,栈、堆以及方法区,来存放对象以及引用。引用可以分为四种:

强引用:平常我们在编写程序时使用比较多的是强引用,在栈内存中有引用指向的对象,即使内存不足也不会被回收,而是

抛出OutOfMemoryException,这就是强引用,如果我们希望回收,可以手动将引用置为null。

StringBuilder sb = new StringBuilder();

  

软引用:在内存空间充足的情况下不会被回收,但是在内存溢出前会回收掉该引用对象,以释放内存空间,多用于高速缓存。

弱引用:无论内存空间是否充足,只要垃圾回收器扫描到就会被回收。这种情况用的比较少,主要是引入WeakHashMap类

虚引用(幽灵引用):永远都获取不到的对象,可以用来检测引用是否被回收。

具体解释可以参考:

http://blog.csdn.net/qq_34280276/article/details/52863626

原文地址:https://www.cnblogs.com/warrior4236/p/6770635.html