
JVM
面试中常问的JVM知识总结
白色小衬衫
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM内存模型
JVM内存模型 JVM内存模型分为两大块:线程私有的、线程共享的 线程私有的:程序计数器、虚拟机栈、本地方法栈 线程共享的:方法区、堆(主要调优调的就是这个) 线程私有的 程序计数器 每条线程都有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,保证每个线程切换后能恢复到正确的执行位置,存储当前线程正在执行的Java方法的JVM指令地址,即字节码的行号。如果正在执行Native方法,则这个计数器为空。该内存区域是唯一一个在Java虚拟机规范中没有规定任何OOM情况的内存区域 java虚拟机栈 是原创 2020-05-19 10:43:59 · 212 阅读 · 0 评论 -
可达性分析算法
可达性分析算法 原理 通过一系列“GC Roots”对象作为起点进行搜索,如果在“GC Roots”和一个对象之间没有可达路径,则称该对象是不可达的。不可达对象不一定会成为可回收对象。 不可达对象变为可回收对象至少要经过两次标记过程。两次标记后仍然是可回收对象,则将面临回收 两次标记: 第一次标记为GC Roots的标记过程 标记完后,会判断该对象有没有必要执行finalize()方法(重写了该方法),如果执行,该对象会被放置在F-Queue队列中 第二次标记是对F-Queue队列中的对象进行小规模的标记,原创 2020-05-19 10:37:27 · 1098 阅读 · 0 评论 -
JVM-内存分配与回收策略
3. 内存分配与回收策略 1. Minor GC(新生代) 触发条件:Eden区满了的时候,会触发Minor GC(复制算法) 频率:Minor GC会频繁进行,执行速度一半会很快 步骤: Eden区和ServivorFrom区存活的对象复制到ServivorTo区,如果放不下,直接放入老年代。同时将ServivorFrom区的对象年龄+1(年龄到达15(默认)后,会转到老年代) 清除Eden...原创 2020-04-09 09:42:19 · 419 阅读 · 0 评论 -
JVM-垃圾回收器
2. 垃圾收集器 HotSpot的七个垃圾收集器 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ty1o29eB-1586396296714)(D:\学习资料\面试知识总结\pic\垃圾收集器.png)] 1. Serial 用于新生代 串行,单线程的执行垃圾回收,会出现STW 使用复制算法 优点: 在单个CPU下,单线程,没有线程切换的开销,因此效率高 ...原创 2020-04-09 09:39:29 · 183 阅读 · 1 评论 -
JVM-垃圾回收算法
1. 垃圾回收算法 一共有三种 1. 标记清除算法(Mark-Sweep) 标记阶段:程序检查每个对象是否为活动对象,如果是活动对象,则程序在对象头部打上标记 清除阶段:对对象进行回收,清除标志位 不足: 产生大量不连续的内存碎片,可能会导致大对象没法分配内存 2. 复制算法(copying) 为了解决标记清除算法会产生大量碎片的缺陷而提出的算法。把内存分为大小相等的两块,每次只使用其中的一...原创 2020-04-09 09:34:39 · 128 阅读 · 0 评论