jvm
张刚强
这个作者很懒,什么都没留下…
展开
-
5. Java的四种引用,强弱软虚,用到的场景。
1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: 1Object o=new Object(); // 强引用当内存空间不足,Java虚拟机宁愿抛出OutOfMemory转载 2018-02-03 11:34:27 · 208 阅读 · 0 评论 -
8. OOM你遇到过哪些情况,SOF你遇到过哪些情况。
学习《深入理解Java虚拟机 JVM高级特性域最佳实践》,学习到了JVM中常见的OutOfMemory和StackOverFlow产生的机理,感觉非常有用。1.平时代码运行时遇到这两种错误后就可以根据具体情况去适时地调整JVM参数来处理问题2.平时写代码的时候也会多加注意,不要让代码产生这两种异常下面就记录下,当作学习笔记。首先必须了解JVM运行时数据区域方法区 用于存储已被JVM加载的类信息,常...转载 2018-03-19 23:31:51 · 1099 阅读 · 0 评论 -
对于JVM内存模型的理解(对比jdk1.7与1.8)
首先介绍一下java虚拟机规范所规定的java内存模型:1.程序计数器(java内存模型中唯一不会发生oom的空间),负责记录正在执行的虚拟机字节码地址,如果是native方法,则计数器值为空,线程私有区2.java虚拟机栈,生命周期与线程相同。描述java方法执行的内存模型,每个方法执行时都会创建一个帧栈,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。局部变量表存放了java的基本数据...原创 2018-03-21 20:39:25 · 7775 阅读 · 2 评论 -
说一下java的垃圾回收机制
它使得java程序员在编写程序的时候可以不用考虑对内存的管理,垃圾回收器通常是作为一个单独的级别比较低的线程存在的,在不可预知的情况下对堆中的已经死亡的对象或者长时间没有引用的对象进行清除或回收。程序员是不可以手动调用垃圾回收器对某个对象进行回收的。程序员可以手动的调用System.gc(),通知GC来运行,但是java语言规范并不保证GC一定会运行。垃圾回收机制可以从三方面来说,也就是...原创 2018-04-01 17:53:01 · 1105 阅读 · 0 评论 -
对象的空间分配策略
1.对象会优先分配在堆的Eden区上面,如果Eden区的内存不足的话,将会触发一次yuoung gc2.大对象将直接进入老年代中(指的是那种很长的字符串或者数组),经常出现大对象会导致内存还有不少空间时就提前触发垃圾收集。虚拟机中提供了一个参数用来设置,超过这个设置值的对象就会直接在老年代中分配,这样做避免在eden区与两个survior区中发生大量的复制。3.长期存活的对象将会直接进入老年代,虚...原创 2018-04-01 19:53:21 · 503 阅读 · 0 评论 -
什么情况下会触发gc root?
young gc 触发的条件? 1.新生代中eden空间不足的时候会触发full gc 出发的条件1.老年代的内存空间不足的时候2.方法区内存空间不足的时候3.当young gc时,从新生代往老年代中移的对象的内存空间大小大于历次晋升的平均空间大小时4.当调用system.gc时,系统会建议执行full gc 但不一定会执行...原创 2018-04-01 19:59:51 · 577 阅读 · 0 评论