[jvm] -- 引用篇
2024-09-03 23:45:59
四种引用及其应用场景
- 强引用
- 强引用是平常中使用最多的引用,强引用在程序内存不足(OOM)的时候也不会被回收。
- 使用场景:啥时候都在使用
- 软引用
- 软引用在程序内存不足时,会被回收。
- 使用场景:创建缓存的时候,创建的对象放进缓存中,当内存不足时,JVM就会回收早先创建的对象。适用构建敏感数据的缓存。
- 弱引用
- 一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。
- 使用场景:Java源码中的
java.util.WeakHashMap
中的key就是使用弱引用,避免内存的消耗。
- 虚引用
- 虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。
- 使用场景:虚引用主要用来跟踪对象被垃圾回收器回收的活动。
最新文章
- 【直播】APP全量混淆和瘦身技术揭秘
- 和JavaScript家的闭包玩玩捉迷藏
- 阐述ArrayList、Vector、LinkedList的存储性能和特性。
- Cornerstone 哪些错误
- HTTP协议学习---(三)摘要认证
- Java:多线程<;三>;死锁、线程间通讯
- Leetcode#137 Single Number II
- 博弈的SG函数理解及模板
- iOS开发基础知识:Core Animation(核心动画)
- jQuery模糊选择
- 关于mysql使用dbForge调试的问题:Object &#39;test.p_insertRoute&#39; does not exist.
- java单例模式(线程安全,效率高,双重推断)
- 所有城市list每次从页面花1段时间抽取后写入到数组,
- 旧Mj下拉刷新 An instance 0xca90200 of class UITableView was deallocated while key value observers were s
- Azure MySQL PaaS (3) 创建MySQL异地只读数据库 (Master-Slave)
- codevs 3342 绿色通道
- SolrCloud7.4(Jetty容器)+mysql oracle 部署与应用
- 最短路(bellman)-hdu1217
- CORS跨域请求
- elastic-search-kibana-in-docker-dotnet-core-app