JVM
softwareDragon
软件工程师一枚
展开
-
java 中的强引用,软引用,弱引用,虚引用有什么用
jdk6版本的intern方法当调用intern方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中该字符串对象的引用。否则,将此字符串对象添加到字符串常量池中,并返回该字符串对象的引用jdk7及以后把常量池移动到了堆中...原创 2020-07-04 23:29:17 · 229 阅读 · 0 评论 -
java 内存模型中堆和栈的区别和联系
1.联系:引用对象、数组时,栈里定义变量保存堆中目标的首地址2.区别:2.1管理方式:栈自动释放(编译器自动执行的操作),堆需要GC2.2空间大小:栈比堆小2.3碎片相关:栈产生的碎片远小于堆2.4分配方式:栈支持静态和动态分配,而堆仅支持动态分配2.5效率:栈的效率比堆高---------------------------------------------从上图中的当HelloWorld类加载进来进行分析各区域中都包含了哪些元素1.元空间:名称为HelloWor原创 2020-07-04 19:07:05 · 229 阅读 · 0 评论 -
JVM 三大性能调优参数 -Xss -Xms -Xmx
1.Xss:规定了每个线程虚拟机栈(堆栈)的大小2.-Xms:堆的初始值3.-Xmx:堆的最大值一般情况下把Xms和Xmx设置成一样,因为当heap(堆)不够用进行扩容时会发生内存抖动,影响程序运行时的稳定性...原创 2020-07-04 18:32:09 · 659 阅读 · 0 评论 -
JVM 堆内存
java堆 分为年轻代(Eden区,Survivor(From ,To)),老年代它们默认所占的比例为:年轻代1/3(Eden8/10,From1/10, To1/10),老年代2/3对象new出来放到年轻代的Eden区,当Eden区满了会发生MinorGC...原创 2020-02-20 20:15:28 · 98 阅读 · 0 评论 -
jvm Minor GC Major GC Full GC 区别
一、Minor GCMinor GC是指从年轻代空间(包括 Eden 和 Survivor 区域)回收内存。当 JVM 无法为一个新的对象分配空间时会触发Minor GC,比如当 Eden 区满了。Eden区满了触发MinorGC,这时会把Eden区存活的对象复制到Survivor区,当对象在Survivor区熬过一定次数的MinorGC之后,就会晋升到老年代(当然并不是所有的对象都是...原创 2020-01-16 14:10:35 · 211 阅读 · 0 评论 -
jvm 垃圾回收算法
1.复制算法(Young Generation)Hotspot虚拟机默认Eden和Survior的大小比例是8:1,其中10%是空闲的 因此区对象存活率低,使用复制算法效率高2.标记清除或标记整理 (Old或Tenured Generation)因此区对象成活率高,没有额外空间对它们就行分配担保,就必须使用标记清除或标记整理算法进行回收。...原创 2019-12-27 17:22:00 · 106 阅读 · 0 评论 -
jvm 虚拟机内存划分
1.程序计数器 线程私有 作用:当前线程所执行的字节码的行号指示器 唯一不会发生OutOfMemoryError情况的区域2.虚拟机栈 线程私有 生命周期与线程相同 每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息。每个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。如果线程请求的栈深度大于...原创 2019-12-26 21:28:37 · 106 阅读 · 0 评论