Java虚拟机
门主冬七
你不知道你,所以你是你。如果你知道你,你就不是你。
展开
-
【jvm】java虚拟机常用参数
在实际的应用中,我们的生产服务器需要根据业务情况进行相应的JVM调优,调优一方面是通过jvm参数来设置的,先列举一些虚拟机参数,后续补充内容。JVM参数列表:-Xms 设置JVM初始内存,此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xmx 设置JVM最大可用内存。-Xmn 设置新生代内存,Sun官方推荐配置为整个堆的3/8。-X原创 2018-01-24 10:56:31 · 204 阅读 · 0 评论 -
【jvm】 Java虚拟机内存模型
1、栈帧: 局部变量表(方法局部变量,方法参数)、操作数栈(方法执行中间结果)、方法返回地址、类当前方法的运行时常量池引用;2、程序计数器:记录线程当前执行到了哪一条指令,在多个线程上下文切换时,能够准确定位线程执行到那一条指令以及需要执行的下一条指令;原创 2018-01-27 11:11:41 · 213 阅读 · 0 评论 -
【jvm】Java虚拟机(jvm)如何查找垃圾对象
在我们写Java程序的时候,不需要去关注内存回收问题。jvm已经帮我处理了,那jvm是如何查找垃圾对象的呢?1、引用计数器算法:给每个对象分配一个计算器,当有引用指向这个对象时,计数器加1,当指向该对象的引用失效时,计数器减一。最后如果该对象的计算器为0时,java垃圾回收器会认为该对象是可回收的。该算法无法解决循环引用问题。A a = new A(); B b = n原创 2018-01-29 18:32:47 · 542 阅读 · 0 评论 -
【jvm】Java虚拟机(jvm)垃圾回收算法(GC)整理
1、标记-清除算法步骤 ======= 该算法分为“标记”和“清除”两个阶段,遍历GC Roots,首先标记出所有需要回收的对象,在标记完成之后统一回收掉所有被标记的对象。缺点 ======= 首先,效率问题,标记和清除效率都不高。其次,标记清除之后会产生大量的不连续的内存碎片,空间碎片太多会导致当程序需要为较大对象分配内存时无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作原创 2018-01-26 15:42:58 · 190 阅读 · 0 评论