标签: JVM

5 篇文章

Java程序性能优化读书笔记(二)
一、Java虚拟机内存模型 1、程序计数器: 每一线程都有一个独立的程序计数器,用于记录下一条要运行的指令。 2、Java虚拟机栈: 线程私有的内存空间,和Java线程在同一时间创建,保存方法的局部变量、部分结果,并参与方法的调用和返回。 可使用Jclasslib工具深入研究Class类文件的结构 3、本地方法栈: 管理本地方法的调用。在Sun的H…
JVM学习笔记四——内存分配与回收策略
     之前学习了jvm的内存模型以及垃圾回收机制,而这篇日记将记录几个JVM中对象在分配内存是应该遵循的策略。毕竟,想要去优化程序,不仅要考虑垃圾回收的过程,还要从对象内存分配的角度减少gc的代价。 一、首先来介绍MinorGC和Full GC区别: 新生代GC(Minor GC):指发生在新生代的垃圾收集动作,因为Java对象大多都具备朝生夕…
JVM学习笔记三——垃圾收集器
JVM学习笔记三——垃圾收集器 上图是基于Sun的HotSpot虚拟机收集器,可以看到有7种收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。 在具体讲收集器之前,先明确两个概念: 1. 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 2. 并发(C…
JVM学习笔记二——垃圾收集算法
垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象有哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。 一:对象存活判断算法: 1、引用计数算法: 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1; 当引用失效时,计数器值就减1;任何时刻计数器都为0的对象就是不可能再被使用的。优点: 实现简单,判定效率高…
JVM学习笔记一——内存区域
JVM是java知识体系的基石之一,任何一个java程序的运行,都要借助于他。或许对于我这种初级程序员而言,工作中很少有必要刻意去关注JVM,然而如果能对这块知识有所了解,就能够更清晰的明白程序的运行机制,从而写出更为健壮的代码,也能更好的理解java中很多处理方式的原因。周志明的深入理解Java虚拟机刚出版的时候就买了,可是一直没有看,中间偶尔抽…