JVM:四种引用总结

版权声明:本博客为记录本人学习过程而开,内容大多从网上学习与整理所得,若侵权请告知! https://blog.csdn.net/Fly_as_tadpole/article/details/87732934

在JVM的GC中,我们使用引用计数器算法可达性分析算法来确定一个对象是否gg了

这里都提到了引用!什么是引用?

其实引用就是一个内存地址,它保存着另一个对象在内存中的起始地址!

由于引用只有 被引用、没有被引用 两种状态!

那么有一类现象:

内存空间足够的时候,我们希望引用的对象能够保存,内存紧张的时候,可以抛弃这些对象!

这个怎么搞????(软引用)

因此扩充引用概念!将引用分为:

强引用、软引用、弱引用、虚引用 


强引用

类似于 Pojo a = new Pojo(); 只要强引用还存在就不会被回收

软引用

被软引用关联的对象,在内存足够时候,可以保留,内存不够的时候,就进行回收。

弱引用

被弱引用关联的对象,只能够生存到下一次GC发生之前。

虚引用

一个对象是否有虚引用的存在不会影响其生存时间。也无法通过一个虚引用来获取一个对象!!!但是设置虚引用可以使得对象被回收的时候会收到一个系统通知(类似于一个信号作用)

猜你喜欢

转载自blog.csdn.net/Fly_as_tadpole/article/details/87732934
今日推荐