jvm
AthlonCC
这个作者很懒,什么都没留下…
展开
-
如何拯救濒临死亡的对象?
问题 : 当对象经过可达性分析算法,判定对象将要被回收,对象一定就非死不可吗? 解答: 这里引用《深入理解java虚拟机》当中的原话,“即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处 于“缓刑”阶段,要真正宣告一个对象死亡,至少要经历两次标记过程:如果对象在进行可达 性分析后发现没有与GC Roots相连接的引用链,那它将会被第一次标记并且进行一次...原创 2019-12-26 15:32:48 · 272 阅读 · 0 评论 -
代码优化-避免内存泄漏的一次浅谈
1.代码场景 当我们写java程序的时候,不可避免的需要一些集合操作,有时候使用不当,导致GC不能够回收释放被集合占用的内存,例如下面代码 protected List<Map<String, Object>> findListBySql(String sql) { List<Map<String, Object>> list = t...原创 2018-12-07 14:23:35 · 486 阅读 · 2 评论 -
synchronized 方法和块的区别(JVM)
"如果应用场景需要一个更大范围的原子性保证(经常会遇到),Java内存模型还提供了lock和unlock操作来满足这种需求,尽管虚拟机未把lock和unlock操作直接开放给用户使用,但是却提供了更高层次的字节码指令monitorenter和monitorexit来隐式地使用这两个操作,这两个字节码指令反映到Java代码中就是同步块——synchronized关键字,因此在synchron...原创 2019-08-31 11:46:00 · 450 阅读 · 0 评论