[jvm] -- 引用篇

  • 四种引用及其应用场景

  • 强引用
    • 强引用是平常中使用最多的引用,强引用在程序内存不足(OOM)的时候也不会被回收。
    • 使用场景:啥时候都在使用
  • 软引用
    • 软引用在程序内存不足时,会被回收。
    • 使用场景:创建缓存的时候,创建的对象放进缓存中,当内存不足时,JVM就会回收早先创建的对象。适用构建敏感数据的缓存。
  • 弱引用
    • 一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。
    • 使用场景:Java源码中的java.util.WeakHashMap中的key就是使用弱引用,避免内存的消耗。
  • 虚引用
    • 虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。
    • 使用场景:虚引用主要用来跟踪对象被垃圾回收器回收的活动。
posted @ 2020-06-30 14:42  双木l之林  阅读(111)  评论(0编辑  收藏  举报