JVM
文章平均质量分 95
JVM基础知识对于高级程序员的重要性不必言语,在面试高级开发的时候,jvm相关知识也必定是考核的标准之一。本栏中包括jvm的相关知识及考察点。
杨倩-Yvonne
Java高级开发工程师,7年工作经验
展开
-
【JVM】class类文件的结构
作为Java程序猿,我们知道,我们写好的.java 源代码,最后会被Java编译器编译成后缀为.class的文件,该类型的文件是由字节组成的文件,又叫字节码文件。那么,class字节码文件里面到底是有什么呢?它又是怎样组织的呢?让我们先来大概了解一下他的组成结构吧。 NO1. 魔数(magic) 所有的由Java编译器编译而成的class文件的前4个字节都是“0xCAFE...转载 2018-10-10 00:01:14 · 205 阅读 · 1 评论 -
【JVM】类加载机制
1.类的加载、连接和初始化 JVM和类 同一个JVM的所有线程、所有变量都处于同一个进程里,它们都使用该JVM进程的内存区。 调用java命令运行某个java程序时,该命令将会启动一个java虚拟机进程,不管该java程序有多么复杂,启动了多少个线程,都处于该java虚拟机进程里。 类的加载 类加载:将类的class文件读入内存,并创建一个java.lang.Class对象。 ...原创 2018-08-26 21:12:30 · 270 阅读 · 1 评论 -
【JVM】内存模型
java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 用图来表示java运行时数据区域 具体说明各个数据区的作用 1.1 程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器。字节码解释器就是通过改变该计数器的...原创 2018-05-27 20:38:54 · 282 阅读 · 53 评论 -
【JVM】垃圾收集算法总结
一、标记-清除算法 标记-清除(Mark-Sweep)算法是一种基础的收集算法。 1、算法思路 "标记-清除"算法,分为两个阶段: (A)、标记 首先标记出所有需要回收的对象; (1)、第一次标记 在可达性分析后发现对象到GC Roots没有任何...转载 2018-05-30 15:10:06 · 238 阅读 · 17 评论 -
【JVM】垃圾收集器
七、垃圾收集器 JDK7/8后,HotSpot虚拟机所有收集器及组合(连线),如下图: 图中展示了7种不同分代的收集器: Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1; 它们所处区域,则表明其是属于新生代收集器还是老年代收集器: 新生代收集器:Serial、ParNew、Parallel ...原创 2018-08-26 21:20:24 · 190 阅读 · 1 评论 -
【JVM】虚拟机对象的创建、布局和访问
基于虚拟机内存的概况了解,进一步了解虚拟机内存中的数据的其他细节,如它们是如何创建、如何布局以及如何访问的 本文以虚拟机HotSpot和常用的内存区域Java堆深入对象分配、布局和访问的全过程 对象的创建 (1)检查这个指令的参数能否在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,解析,初始化,如果没有,先加载 (2)为新生对象在...原创 2018-08-13 17:50:46 · 276 阅读 · 0 评论 -
JVM性能监控与故障处理工具
一、JVM参数 1、参数分类 1.标准参数 功能和输出的参数都是很稳定的 在未来的JVM版本中不会改变 可以使用java -help检索出所有的标准参数 2.X参数 非标准化参数 在未来的版本可能会改变 所有的参数都用-X开始 可以使用java -X检索 但是注意没有-Xcomp 3.XX参数 非标准 很长一段时间不会列出来 用于JVM开发的debug和调优 2、Su...原创 2018-10-02 11:30:22 · 846 阅读 · 2 评论