Java虚拟机
文章平均质量分 51
蓝色的猴子
博客园:林鱼
展开
-
类虚拟机类加载机制(1)
一 类加载的注意点以部分也可以称为连接首先类加载的过程: 加载 -------》验证-------》准备--------》解析---------》初始化----------》使用---------》卸载声明一下 以下的 ”类型“ 代表的是class文件中代表Java语言的一个类或者接口的可能。1 对于"加载"这个阶段 《Java虚拟机规范》没有规定什么什么时候加载,可以由JVM自行决定。2 但是在初始化的过程中由6种情况必须立即要对类进行初始化。1)当遇到new,getstatic,putst原创 2021-01-31 14:38:34 · 116 阅读 · 1 评论 -
JVM笔记(5)-类文件结构(3)
第一部分 字节码指令简介 字节码是什么:字节码指令定义:有一个字节长度的,代表着某种特定操作含义的数字(称之操作码),以及跟随其后的零至多个代表此操作所需的参数(称之为操作数)构成。 由于虚拟机采用的面向操作数栈而不是面向寄存器的构架。所以大多数指令都不包含操作数,只有一个操作码,指令参数都存放在操作数栈之中。 字节码指令组成:操作码+操作数,但是因为构架的原因,字节码指令 =操作码第二部分 字节码的数据类型 1 加载和存储指令:将数据在栈帧中的局部变量表和操作数栈之间来回传输。原创 2021-01-09 15:08:23 · 64 阅读 · 0 评论 -
JVM笔记(5)--类文件结构(2)
第一部分 1.常量池 2.访问标志 3.类索引,父类索引于接口索引集合 4.字段表集合 5.方法表集合第二部分 1.属性表集合...原创 2021-01-02 16:28:07 · 279 阅读 · 0 评论 -
JVM笔记(5)--类文件结构
Java程序通过 Javac编译器 编译成字节码( *.class )然后通过 Java虚拟机 去执行,其中的字节码文件就是接下来要学习的内容。第一部分:Java虚拟机的无关性 1.平台无关性:在任何平台上只要安装虚拟机就可以运行。 平台无关性----是基于字节码。 2.语言无关性:任何语言都可以在虚拟机上运行。 语言无关性----是基于虚拟机和字节码存储格式。第二部分:Class类文件的结构 1.class类文件存储数据的数..原创 2020-12-06 14:41:58 · 71 阅读 · 0 评论 -
JVM--总结
第一部分 运行时数据内存 程序计数器:改变程序计数器的值,可以选取下一条字节码指令。程序计数器 支持 程序控制流的指示器,分支,循环,跳转,异常处理,线程恢复等基础操作(线程私有) Java堆:所以对象实例和数组内存分配的地方(线程共享) Java虚拟机栈:一般是指局部变量表部分,有基本数据类型,对象引用(线程私有) 本地方法栈:有Java虚拟机栈一样,但是本地方法栈是为了本地方法使用的(线程私有) 方法区:用于存储已被虚拟机加载的类型信息,常量,静态变量.原创 2020-11-29 15:20:45 · 69 阅读 · 0 评论 -
JVM笔记(4)--垃圾回收器(2)-CMS和G1
第三章 垃圾收集器 CMS 1)CMS收集器:是一个以获取最短回收停顿时间收作为目标的收集器。 2)回收过程:1 初始标记 2 并发标记 3 重新标记 4 并发清除 3)优势:并发收集,低停顿。 4)劣势:1 对于处理器资源非常敏感,但是会随着处理器数量增加(处理器的核数为4最为合适)收集效率会下降。 2 会产生“浮动垃圾”。在并发标记和并发清楚的阶...原创 2020-11-15 15:34:10 · 104 阅读 · 0 评论 -
JVM笔记(4)--垃圾收集器(1)
第三章 垃圾收集器 1)Parllel Scavenge收集器:主要是一个新生代的收集器,并行收集的多线程收集器 算法:标记-复制算法 关注点:目标则是达到一个可控制的吞吐量 运行用户代码时间 吞吐量=——————————————————— 运行用户代码时间+运行垃圾收集时间 搭配的收集器:Serial Old 和 Parallel Old 2)Se...原创 2020-11-07 14:36:52 · 50 阅读 · 0 评论 -
JVM笔记(4)--垃圾收集器
第三章 垃圾收集器 对于现在垃圾收集器要介绍的有7种分别是 Serial,PerNew,Parallel Scavenge,Serial Old,Parallel Old,CMS,Garbage First。 对于上图垃圾回收器俩俩连线的收集器就可以相互组合使用,但是对于以上的关系并不是一层不变的, 在JDK8中serial+ CMS,ParNew+Serial Old就废弃不在使用,在JDK9就取消对于他们的支持。 ...原创 2020-10-31 15:54:16 · 78 阅读 · 0 评论 -
JVM笔记(4)--垃圾收集算法
第三章 垃圾收集器和内存分配策略 第三节 垃圾收集算法 1.分类:引用计数式垃圾收集(直接垃圾收集)和 追踪式垃圾收集(间接垃圾收集) 2.分代收集理论:1)弱分代假说:主要是一些朝生夕灭的对象。 2)强分代假说:这里是一些可以熬过多次垃圾收集器收集的对象。 3)跨代引用假说:新生代的对象可能被老年代对象引用,为了解决这个问题引...原创 2020-10-24 14:45:52 · 90 阅读 · 0 评论 -
JVM笔记(4)--对象已死?和方法区回收
第三章 垃圾回收器和内存分配策略 第一节 判断对象是否死亡和回收方法区 一 判断对象是否死亡: 1)在Java主流的虚拟机中是通过可达性分析算法。 可达性分析算法:是指通过CG Roots的节点集通过引用关系开始搜索对象,搜索到的对象的路径称之为“可达链”,若搜索到的对象还在这条链上则该对象还可以使用,反之对象不能使用。 2)而对于引用计数算法是通常用在python,游戏的脚本语言中微软的com(component objec...原创 2020-10-17 14:49:45 · 53 阅读 · 0 评论 -
JVM笔记(3)--第二章 总结
第二章 一 运行时数据区域 1 程序计数器:在线程切换的过程中通过程序计数器定位线程执行到哪一步。 2 Java虚拟机栈:用于存放方法的入口,局部变量表,动态链接,操作数栈。 3 本地虚拟机栈:和Java虚拟机类似,但是他只能为本地方法服务。 4 Java堆:用于存放对象实例,也是垃圾收集器的管理的地方。 5 方法区:用于存放常量,静态常量,被虚拟机加载之后的类型信息。 二 Hotspot虚拟机对象 1 创建对象:要给对象分配内存时原创 2020-10-11 15:05:24 · 69 阅读 · 0 评论 -
JVM体系笔记(2)
第一部分 第一张 走进Java 这一章主要讲述的是 Java发展的历程和不同公司研发Java虚拟机(虚拟机家庭丰富的恩怨纠葛)。在这个虚拟机家庭中HotSpot以他独有的优势在虚拟机中独占鳌头,经久不衰。还有就是最后一节是一个实战事例,就是自己编译JDK(如果window系统可以安装VMware下安装Linux系统(ubunto版本)搭建编译环境),这个例个人感觉很不错,自己也在着手在干,也希望有兴趣的同学也去做一做。 第一点 Java技术体系 按照功能划分: J.原创 2020-09-19 16:11:41 · 773 阅读 · 0 评论 -
JVM笔记(3)--对象创建,对象布局和对象定位
第二部分自动内存管理 第二章Java内存管理和内存溢出异常----对象创建和对象布局 这部分有:1对象创建, 2对象布局 1.对象创建 步骤1:创建对象(也就是new)-----> 内存分配 -----> 内存分配方式 : 1. 有序分配(指针碰撞) ...原创 2020-10-02 15:00:04 · 153 阅读 · 0 评论 -
JVM笔记(3)--Java运行数据区域
第二部分自动内存管理 第二章Java内存管理和内存溢出异常----Java运行时内存组成 首先运行是内存组成的部分有:1 程序计数器。2 Java虚拟机栈。3本地方法栈。4 Java堆。5方法区。 1 程序计数器: 1)程序计数器干什么用:在运行的内存呢中它相当于一个字节码执行的行号指示器,但是程序计数器所占的内存较小,在Java虚拟机的模型中,字节码解释器通过改变程序计数器的值来选取下一条的行的字节码指令。 2)线程私有:Java虚拟机原创 2020-09-26 12:52:02 · 55 阅读 · 0 评论 -
JVM体系笔记(1)
该书主要分为13章,五个部分(以下内容为前言部分)。第一个部分 走进JAVA 第1章为第一个部分 主要介绍的是Java的发展历程以及在发展的过程中公司和团队的做出的卓越的贡献。第二个部分 自动内存管理 第2~5为第二个部分 主要是讲述Java虚拟机去分配内存,使得编码方便,但是一旦出现内存溢出和泄露的问题就会导致不了解虚拟机内存的程序员一头雾水,加大排查错误的难度。 第2章 主要讲述 虚拟机中内存的划分以及如何导致内存溢出和泄露的。 第3章 主要讲述 垃圾回收算法和H原创 2020-09-10 21:57:09 · 64 阅读 · 0 评论 -
Java体系虚拟机笔记
JVM笔记深入理解Java虚拟机(第三版)作者:周志明今天买了周志明老师的深入理解Java虚拟机,之前看过电子版,不过是大致浏览一遍,感觉非常好,对自己有很大的启发和帮助,所以决定不在白嫖,支持一下。然后在这里记录自己的学习情况。立一个flag打算每一周写一篇总结,希望不要打脸自己。标签: Java虚拟机...原创 2020-09-06 22:46:53 · 55 阅读 · 0 评论