随笔分类 - Java / JVM
摘要:Java语言在JVM虚拟机上运行,不可避免的涉及到JVM指令集,下面我们简单分析几个案例。 在进行分析之前,先简单回顾一下JVM的运行时数据区中的JVM虚拟机栈。 一、JVM Stack - JVM虚拟机栈 JVM Stack描述的是:每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数
阅读全文
摘要:Java虚拟机中自动内存管理自动化的解决了两个问题: 1、回收给对象分配的内存 2、给对象分配内存 下面来看给对象分配内存的策略: 一、对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间进行分配时,虚拟机发起Minor GC。 新生代中Eden区与Surv
阅读全文
摘要:既然有垃圾收集算法,那么就有实现算法的垃圾收集器。 一、Serial收集器(新生代收集器) Serial收集器是一个单线程的收集器,既然是单线程就意味着它只会使用一个CPU或者一条收集线程去完成垃圾收集工作。 因为是单线程,所以在Serial收集器开始垃圾收集时,必须暂停其他所有的工作线程,直到它收
阅读全文
摘要:1、为什么了解GC(垃圾收集)和内存分配 需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,需要对这些”自动化”的技术实施必要的监控和调节。 2、内存回收区域 程序计数器,虚拟机栈、本地方法栈这3个区域是线程私有的,方法结束或者线程结束时,内存跟着回收。栈中的栈帧随着随
阅读全文