java 软引用,弱引用,强引用

    科技2022-07-15  122

    4种引用类型: 强引用,弱引用,软引用,虚引用。

    引用类型优点: 1.可以通过代码控制对象的生命周期。 2.便于jvm进行垃圾回收。

    强引用: 只有引用释放对象才被回收,这是常见的new出来的对象。 也可以将引用赋值为null,中断引用和对象之间的关联。jvm会在合适的时间回收该对象。

    软引用: 软引用关联着的对象,只有内存不足的时候jvm才会回收该对象。适合用来实现缓存,网页缓存,图片缓存。

    弱引用: 描述非必须的对象,无论内存是否满足,该对象都会被回收。主要用于监控对象是否被垃圾回收器标记为即将回收对象,可以通过弱引用的isEnQueued方法返回对象确认是否被垃圾回收器标记

    利用软引用和弱引用解决OOM问题

    假设一个应用,需要读取大量的本地图片。每次从硬盘取数据,影响性能和客户体验。全部加载到内存,可能会产生内存溢出,此时可以利用软引用和弱引用解决问题。

    创建一个hashmap 保存图片路径 和 相应图片对象关联的软引用之间的映射关系,内存不足时,jvm会自动回收这些对象。

    Processed: 0.015, SQL: 8