JVM
PitBXu
看山是山,看山不是山,看山还是山
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM_05 运行时数据区与指令集
JVM Runtime data area and JVM instructions<previous next>一、Java 内存布局 图 1 java 内存布局 PC线程私有program counter , 保存下一条指令的位置。 PC 是唯一不会发生 OOM 的内存区域。虚拟机执行的过程类似于以下的伪代码:while (not end) { get from pc; get 对应位置指令; 执行该指令; pc ++;}JVM Stack线程私.原创 2020-08-31 20:26:11 · 323 阅读 · 0 评论 -
JVM_04 指令重排序原则
< previous next >一、Java 8 大原子操作(目前这种说法已弃用)参考资料 《深入理解java虚拟机》page: 364指令作用区解释lock主内存标识变量为线程独占unlock主内存解锁read主内存读到工作内存write主内存写到主内存load工作内存read后的值放到线程本地变量副本store工作内存存储值到主内存给 write 备用use工作内存传值给执行引擎ass.原创 2020-08-13 20:05:29 · 713 阅读 · 0 评论 -
JVM_03 CPU的乱序执行
上次我们提到了JVM为了安全推出的 双亲委派机制那么双亲委派机制可能被打破吗?可以,那么如何打破呢? ClassLoader.loadClass 方法定义了类加载的双亲委派机制,重写该方法即可跳出双亲委派。历史上出现过几次双亲委派被破坏的案例JDK 1.2 之前,想自己实现类的加载必须重写 loanClass 方法。Thread.ContextClassLoader 中的线程上下文加载器,不是按照双亲委派机制运行的。热启动、热部署等场景,每一个 WebApplication 都有自己的 C.原创 2020-08-05 21:58:48 · 614 阅读 · 0 评论 -
JVM_02 类加载机制
JVM 类加载步骤loading - 装载linking - 链接verification - 验证preparation - 准备resolution - 解析intializing - 初始化装载1. 通过一个类的 全限定名 来获取定义此类的 二进制字节流2. 将这个字节流所代表的 静态存储结构 转化为 方法区的 运行时数据结构3. 在 Java 堆中生成一个代表这个类的 java.lang.Class 对象,作为方法区访问这些数据的入口。验证: 检查载入Cla原创 2020-08-03 22:20:41 · 292 阅读 · 0 评论 -
JVM_01 Class文件格式
JVM 知识体系图1 jvm 结构问题1: Java 是编译执行的还是解释执行的?解释 + 热点代码编译 执行 (混合执行)**解析:**其实 JVM 主要对 class 文件中的字节码使用 字节码解释器 进行解释并执行。但是当某一方法调用次数达到即时编译定义的阈值时,就会触发即时编译,这时即时编译器会将IR进行优化,并生成这个方法的机器码,后面再调用这个方法,就会直接调用机器码执行相关参数:-Xmixed 混合执行-Xint 解释执行模式-Xcomp 编译执行模式图2 j...原创 2020-08-03 20:51:08 · 278 阅读 · 0 评论 -
JVM类加载机制
java 类加载机制1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java...原创 2019-03-25 10:33:40 · 243 阅读 · 0 评论
分享