
JVM学习
dan_zhoudan
研究生阶段
展开
-
java类的加载
1、类的加载概述 1.1 类加载 我们编写的".java"扩展名的源代码文件中存储着要执行的程序逻辑,这些文件需要经过java编译器编译成".class"文件,".class"文件中存放着编译后虚拟机指令的二进制信息。当需要用到某个类时,虚拟机将会加载它,并在内存中创建对应的class对象,这个过程称之为类的加载。 一个类的生命周期从类被加载、连接和初始化开始;只有在虚拟机内存中,我们的java程序才可以使用它。整个过程如下图所示: 2、类的加载、类的连接、类的初始化 当程序...原创 2020-07-01 21:55:55 · 271 阅读 · 0 评论 -
解密JVM(二) -- 垃圾回收
一、导论 之前的文章,我们学习了jvm的内存结构,其中一个最重要的部分,即堆存在垃圾回收的机制。下面我们详细讲解垃圾回收的相关知识。 2 二、如何判断对象可以回收 2.1 引用计数法 存在一个弊端:循环引用的问题(jvm没有采用这种算法) 2.2 可达性分析算法 java虚拟机采用的一种判断对象是否是垃圾(判断对象是否存活)的算法 Java 虚拟机中的垃圾回收器采用可达性分析来探索所有存活的对象 扫描堆中的对象,看是否能够沿着 GC Root对象 为起点的引用链找到该对象,找不..原创 2020-06-18 20:45:26 · 377 阅读 · 0 评论 -
解密JVM(一) -- JVM内存结构
一、概念 1、 2、 JVM,java虚拟机,屏蔽java代码与底层操作系统之间的差异。 二、学习路线 三、内存结构 1、程序计数器 1.1 定义 Program Counter Register 程序计数器(寄存器) 作用,是记住下一条jvm指令的执行地址 特点: 是线程私有的 不会存在内存溢出 1.2 作用 2、虚拟机栈 栈:线程运行需要的内存空间 --> 由多个栈帧组成 栈帧:每个方法运行时需要的内存 2.1 定义 2.2 ...原创 2020-06-17 17:46:45 · 323 阅读 · 0 评论