上一篇说到的垃圾收集算法是方法论,具体垃圾收集时如何利用这些算法就要看各个JVM的具体实现了,我们肯定主要讨论HotSpot JVM的实现,首先HotSpot JVM使用了分代收集的思想,并实现了多种收集器,有的收集器适…
分类:java虚拟机
JVM(1)---虚拟机在运行期的优化策略
1.解释器与JIT编译器 首先我们先来了解一下运行在虚拟机之上的解释器与JIT编译器。 当我们的虚拟机在运行一个java程序的时候,它可以采用两种方式来运行这个java程序: 采用解释器的形式,也就是说,在运行.clas…
深入理解Java虚拟机笔记1: OOM实战
通过代码模拟Java虚拟机规范中描述的各个运行时区域内存溢出的场景。 1. Java堆溢出 2. 虚拟机栈和本地方法栈溢出 2.1 StackOverflowError 2.2 栈OutOfMemoryError 3. …
《深入理解Java虚拟机》笔记-垃圾收集器参数总结
UseSerialGC UseSerialGC Client模式下默认值,打开此开关将使用Serial+Serial Old的收集器组合进行收集 UseParNewGC 使…
深入理解Java虚拟机:虚拟机是什么?
Java虚拟机是什么 Java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,…
深入理解java虚拟机(六)字节码指令简介
Java虚拟机指令是由(占用一个字节长度、代表某种特定操作含义的数字)操作码Opcode,以及跟随在其后的零至多个代表此操作所需参数的称为操作数 Operands 构成的。由于Java虚拟机是面向操作数栈而不是寄存器的架…
深入理解java虚拟机读书笔记(二): 运行时数据区域
深入理解java虚拟机读书笔记(二): 运行时数据区域 程序计数器 程序计数器(Program Counter Register) 是一块较小的内存,它可以看作程序执行指令的行号。在虚拟机的概念模型中, 字节码解释器工作…
JVM调优总结(参考深入理解Java虚拟机书籍)
1.堆大小设置: 最大的堆大小限制:操作系统的数据,虚拟机内存限制,物理内存限制 典型设置:-Xmx3550m -Xms3550m -Xmn2g -Xss128K -Xmx3550m :设置JVM最大可用的内存3550M…
浅谈JAVA中静态绑定和动态绑定(源自《深入理解Java虚拟机》)
静态绑定:又称“前期绑定”,发生在编译期; 主要是方法重载(overload); 在编译阶段,javac编译器会根据参数的静态类型决定使用哪个重载版本。 动态绑定:又称“后期绑定”,发生在运行期; 主要是方法重写(ove…
深入理解Java虚拟机(第一版)-第三章读书笔记
概述 第三章的标题是:垃圾收集器与内存分配策略 GC Roots 首先必须吐槽一下,这个章节里,作者对GC Root的定义的描述的不太清楚的。读完之后,还是一头雾水。为了大概搞清楚这个问题,自己找了蛮多资料,下面简单的汇…
《深入理解java虚拟机》---调优案例分析(5)
前面的一个章节都是在手关于检测信息的工具,那么本章节中就要运用这些工具来解决我们日常中遇到的问题,这样工具才显得有意义。 一、案例分析 1.高性能硬件上的程序部署策略 描述:一个15万PV/天左右的在线文档类型网站硬件系…
深入java虚拟机-finally
在java面试题中经常会遇到一些关于finally的问题,我通过class文件研究了一下java编译器对finally的处理。  …