JVM面试知识点梳理

栏目: Java · 发布时间: 5年前

内容简介:程序计数器:每个线程执行程序指令的行号虚拟机栈:存放每个方法的栈帧,帧的入栈跟出栈就是方法执行的过程本地方法栈:Native方法的栈

程序计数器:每个线程执行程序指令的行号

虚拟机栈:存放每个方法的栈帧,帧的入栈跟出栈就是方法执行的过程

本地方法栈:Native方法的栈

Java堆:保存 Java 对象的地方,细分为 Eden区, From Survivor空间, To Survivor空间(线程共享)

方法区:线程共享,存放已经被虚拟机加载进来的类信息,常量、静态变量,JIT编译后的数据代码。java的class文件首先进入的到方法区里面去。

运行时常量池

方法区的一部分。

四大引用

强引用:只要强引用还在,引用的对象永远不会被回收

软引用: 发生内存溢出之前会清除

弱引用:垃圾回收的时候会收走

虚引用:对象生命周期不会受到它影响,只是在被回收掉的时候,收到通知。

对象的存活

  • 引用计数器
  • 可达性算法(堆外的引用, GC Roots)

垃圾回收算法

  • 标记清除法
  • 复制算法
  • 标记整理法
  • 分代收集

安全点、Minor GC、Full GC、 STW、TLAB

safePoint、安全区域 。(不操作内存的写,不跟主存打交道) STW(stop the world)

eden, survior中调用 Minor GC,之所以没有用STW,添加了统计老生代到 新生代数据引用的卡表(脏位)

新生代(eden + from + to)TLAB(Thread Local Allocation Buffers)由于to Survior的空间不够,找老年代做 内存担保

当经历过几次 从from 到 to过程后依旧活着的对象就可以进入到 老生代中去了。

垃圾收集器

  • Serial (单线程,新生代,copy算法)

  • Parallel New(多线程,新生代,copy算法,时间优先)

  • Parallel Scavenge(多线程,新生代,copy算法,吞吐量优先)

  • Serial Old(单线程,老生代, 标记清除)

  • Parallel Old(多线程,老生代, 标记清除)

  • CMS:垃圾收集器跟应用并行(多线程,老生代, 标记清除)分两次清理,第一次清理的时候,工作线程跟垃圾线程并行,第二次STW。(Java 9 被废除)

  • G1 (新生代 + 老生代)

类加载过程

  • 加载:验证Class文件是否按Class的结构走的,然后加载完成之后变成内存的结构
  • 验证:不会等加载结束,其实交替进行的(文件格式验证、元数据验证、字节码验证、符号引用验证)
  • 准备:分配内存,虚方法动态分配的方便发表。创建符号引用(所以跟验证是交叉的)
  • 解析:(符号引用到直接引用:字段解析、类方法解析、接口方法解析)
  • 初始化 (cinit<>)

即时编译(JIT优化)

热点方法,循环热点

C、C++属于静态编译,运行时候不会。java属于动态编译,虚方法动态分配,激进优化等使之更彻底,但是占用CPU。

优化方式:

  • 内联优化(省去了方法的加载,压栈等。诡异的TR1图)

  • 逃逸分析(对象没有被方法外引用的时候,直接到接近CPU的栈上分配存储空间。方法仅被一个线程调用到的时候,去掉同步锁。)

  • 指令集(Compare And Sweep, Compare and Set),???

  • 循环优化、向量优化


以上所述就是小编给大家介绍的《JVM面试知识点梳理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Game Engine Architecture, Second Edition

Game Engine Architecture, Second Edition

Jason Gregory / A K Peters/CRC Press / 2014-8-15 / USD 69.95

A 2010 CHOICE outstanding academic title, this updated book covers the theory and practice of game engine software development. It explains practical concepts and techniques used by real game studios,......一起来看看 《Game Engine Architecture, Second Edition》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码