Tag - jvm
J.A.R.V.I.S
Life is not just Live
GC-经典垃圾收集器
经典垃圾收集器
Serial收集器
Serial收集器是最基础、历史最悠久的收集器. 这个收集器是一个单线程工作的收集器, 在他进行垃圾收集时, 必须暂停其他所有工作线程, 直到它收集结束.
它是HotSpot虚拟机运行在客户端模式下的默认新生代收集器, 它简单高效, 额外内存消耗最少.
9月 25 · 25 min
GC-垃圾回收算法
垃圾回收算法
从如何判定对象消亡的角度出发, 垃圾收集算法可以划分为“引用计数器垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类. 这两类也常被称作“直接垃圾收集“和”间接垃圾收集“. 但是引用计数式垃圾收集算法在主流Java虚拟机中均为涉及.
9月 20 · 7 min
GC-垃圾收集器
9月 15 · 8 min
Java OOM异常分析
Java OOM异常分析
OOM异常分析
Java堆溢出
Java堆内存的OutOfMemoryError异常是实际应用中最常见的内存溢出异常情况. 出现Java堆内存溢出时, 异常堆栈信息“java.lang.OutOfMemoryError”会跟随进一步提示“Java heap space
“
可能的原因有:
内存泄漏
内存溢出
需要从代码上检查是否存在某些对象生命周期过长、持有状态时间过长、存储结构设计不合理的情况, 尽量减少程序运行期的内存消耗
要处理这个内存区域的异常, 常规的处理方法是通过内存映像分析工具对Dump出来的堆转储快照进行分析.
9月 10 · 1 min
JVM中Java对象的创建、内存布局、访问定位
Java对象创建
当Java虚拟机遇到一条字节码new指令时, 首先将去检查这个指令的参数能否在常量池中定位到一个类的符号引用, 并且检查这个符号引用代表的类是否被加载, 解析和初始化. 如果没有则会先执行相应的类加载过程.
对象的创建过程大致分为以下四步:
- 为新生对象分配内存
- 虚拟机将分配到的内存空间(不包括对象头)都初始化为零值
- 对对象进行必要的设置, 例如这个对象是哪个类的实例, 如果找到这个类的元数据信息, 对象的GC分代年龄等, 这些信息存放在对象的对象头之上
- 执行Class文件额init方法
9月 01 · 7 min
JVM运行时数据区域
8月 28 · 6 min