![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
蹲茅坑逗蛆蛆
这个作者很懒,什么都没留下…
展开
-
jvm基础结构
PC寄存器 每个线程拥有一个PC寄存器 在线程创建时 创建 指向下一条指令的地址 执行本地方法时,PC的值为undefined方法区 保存装载的类信息 类型的常量池 字段,方法信息 方法字节码 通常和永久区(Perm)关联在一起Java堆 和程序开发密切相关 应用系统对象都保存在Java堆中 所有线程共享Java堆 对分代GC来说,堆也是分代的 GC的主要工作区间Java原创 2017-09-25 12:07:49 · 165 阅读 · 0 评论 -
jvm新生代 老年代 永久代
JVM中的堆,一般分为三大部分:新生代、老年代、永久代: 一:新生代 主要是用来存放新生的对象。一般占据堆的1/3空间。由于频繁创建对象,所以新生代会频繁触发MinorGC进行垃圾回收。 新生代又分为 Eden区、ServivorFrom、ServivorTo三个区。 Eden区:Java新对象的出生地(如果新创建的对象占转载 2017-09-25 15:42:57 · 1062 阅读 · 2 评论 -
gc的算法和种类
GC的概念 Garbage Collection 垃圾收集 1960年 List 使用了GC Java中,GC的对象是堆空间和永久区 根 栈中引用的对象 方法区中静态成员或者常量引用的对象(全局对象) JNI方法栈中引用对象1.老牌垃圾回收算法 通过引用计算来回收垃圾 使用者 COM ActionScript3 Python 引用计数器的实现很简单,对于一个对象A,只要有原创 2017-09-25 23:39:55 · 189 阅读 · 0 评论 -
jvm Stop-The-World
Stop-The-WorldJava中一种全局暂停的现象 全局停顿,所有Java代码停止,native代码可以执行,但不能和JVM交互 多半由于GC引起 Dump线程 死锁检查 堆Dump GC时为什么会有全局停顿? 类比在聚会时打扫房间,聚会时很乱,又有新的垃圾产生,房间永远打扫不干净,只有让大家停止活动了,才能将房间打扫干净。 危害 长时间服务停止,没有响应 遇到HA系统,可原创 2017-09-25 23:41:55 · 1406 阅读 · 0 评论 -
jvm可触及性
可触及性 可触及的 从根节点可以触及到这个对象 可复活的 一旦所有引用被释放,就是可复活状态 因为在finalize()中可能复活该对象 不可触及的 在finalize()后,可能会进入不可触及状态 不可触及的对象不可能复活 可以回收public class CanReliveObj { public static CanReliveObj obj; @Overri原创 2017-09-25 23:40:30 · 239 阅读 · 0 评论 -
GC参数
串行收集器 最古老,最稳定 效率高 可能会产生较长的停顿 -XX:+UseSerialGC 新生代、老年代使用串行回收 新生代复制算法 老年代标记-压缩并行收集器 ParNew -XX:+UseParNewGC 新生代并行 老年代串行 Serial收集器新生代的并行版本 复制算法 多线程,需要多核支持 -XX:ParallelGCThreads 限制线程数量Parall原创 2017-09-26 10:31:20 · 181 阅读 · 0 评论