jvm
赐我梦境~还我清醒
这个作者很懒,什么都没留下…
展开
-
jvm学习笔记9:java内存模型
目录1.存储设备与CPU执行效率的冲突以及解决方案2.Java内存模型3. 内存间的交互操作3.1 8个基本指令3.2 8个基本指令的基本规则3.3 volatile关键字4. 原子性、可见性、有序性4.1 原子性4.2 可见性4.3 有序性5.Java中的各种1.存储设备与CPU执行效率的冲突以及解决方案CPU进行计算时,需要与存储设备(内存)进行交互,存储和读取数据。由于计算机的存储设备的读取和写入速度和cpu运算速度有几个数量级的差距。这个时候,I/O速度成了执行效率的瓶颈。为了解决上面的问题原创 2020-12-27 18:12:50 · 97 阅读 · 0 评论 -
jvm学习笔记7:虚拟机字节码执行引擎
目录1.概述2.运行时栈帧结构2.1 局部变量表3.方法调用4.基于栈的字节码解释执行引擎5.即时编译执行引擎1.概述见上图,执行引擎是Java虚拟机最核心的组成部分之一。执行引擎分为java解释器和JIT编译器两种。JAVA解释器每次将一条指令解释为字节码,交给CPU执行。JIT编译器每次将多条执行编译为字节码,一次性交给CPU执行。2.运行时栈帧结构栈帧(Stack Frame)是用于虚拟机进行方法调动和方法执行的数据结构,是虚拟机运行时数据区中的虚拟机栈。栈帧中存储了方法的局部变量原创 2020-12-02 22:52:54 · 180 阅读 · 0 评论 -
jvm学习笔记6:类加载器
目录1. 类与类加载器2. 双亲委派机制二级目录三级目录1. 类与类加载器对于任意一个类,都需要有加载它的类加载器和这个类本身一同确认其在java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。子类可以访问到父类加载器加载的类,父类2. 双亲委派机制二级目录三级目录...原创 2020-11-17 21:34:46 · 268 阅读 · 2 评论 -
jvm学习笔记5:虚拟机类加载机制
目录1. 概述2. 类的加载过程2.1 加载2.2 链接-验证2.3 链接-准备2.4 链接-解析2.5 初始化3. 类的加载时机4. 总结下各种变量的赋值阶段。1. 概述虚拟机把class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类的加载机制。2. 类的加载过程类的生命周期如下:如上图:加载、验证、准备、初始化、卸载这5个阶段的顺序是确定,类的加载过程必须按照这种顺序按部就班的开始(注意:开始,而不是完成。因为可以存在两个步骤同时执行原创 2020-11-14 19:47:46 · 132 阅读 · 0 评论 -
jvm学习笔记4:jvm字节码
目录1.简介2.加载和存储指令3.运算指令4.类型转换指令5.对象创建和访问指令6.操作数栈管理指令7.控制转移指令8.方法调用和返回指令9.异常处理指令10.同步指令11.其他1.简介java虚拟机字节码是由一个字节长度、代表某种特定操作含义的数字(简称操作码)以及跟随在其后的零至多个代表此操作所需的参数(简称操作数)而构成。2.加载和存储指令3.运算指令4.类型转换指令5.对象创建和访问指令6.操作数栈管理指令7.控制转移指令8.方法调用和返回指令9.异常处理指令10.同步指令1原创 2020-11-14 14:48:08 · 176 阅读 · 0 评论 -
jvm学习笔记2:垃圾收集器
写在前面本文只要GC的几个关键性能指标开始,详细介绍目前主流的几个垃圾收集器的原理。1.两个GC关键指标1.1 吞吐量吞吐量=程序运行时间/(程序运行时间+垃圾回收时间),越高越好。1.2 暂停时间一个时间段内应用程序线程让与GC线程执行而完全暂停,越小越好。1.3 两者关系”高吞吐量”和”低暂停时间”是一对相互竞争的目标。应用线程在GC期间必须停止(或者仅在GC的特定阶段,这取决于所使用的算法),然而这会增加额外的线程调度开销(直接开销是上下文切换,间接开销是因为缓存的影响)。 加上JVM原创 2020-10-24 12:17:20 · 291 阅读 · 1 评论 -
jvm学习笔记3:class类文件结构
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2020-11-01 14:00:16 · 165 阅读 · 2 评论 -
jvm学习笔记1:垃圾收集算法
写在前面本文主要介绍以下几个内容:怎么确定那些内存是垃圾: 引用计数法、可达性分析什么时候回收垃圾:怎么回收垃圾: 复制算法、标记-标记清除算法、标记整理算法、分代收集算法、分区收集算法…常用的垃圾收集器1.怎么确定垃圾1.1 垃圾标记的两种算法算法定义优点缺点引用计数算法给对象添加一个计数器,每当有地方引用这个对象,计数器加1;引用失效时,计数器减1;计数器为0的对象就是不可用的。判定简单,效率较高无法解决对象之间的相互循环引用问题可达性分析算法通原创 2020-10-18 15:22:38 · 170 阅读 · 3 评论