JVM学习笔记
学习JVM的笔记
Coder_py
这个作者很懒,什么都没留下…
展开
-
JVM方法句柄
JVM方法句柄方法句柄是一个强类型的,能够被直接执行的引用。该引用可以指向常规的静态方法或者实例方法,也可以指向构造器或者字段。当指向字段时,方法句柄实则指向包含字段访问字节码的虚构方法,语义上等价于目标字段的 getter 或者 setter 方法**方法句柄的类型(MethodType)**是由所指向方法的参数类型以及返回类型组成的。它是用来确认方法句柄是否适配的唯一关键。当使用方法句柄时...原创 2020-03-30 15:36:37 · 565 阅读 · 0 评论 -
JVM与synchronized
JVM与synchronizedsynchronized 关键字使用:声明一个 synchronized 代码块直接标记静态方法或者实例方法声明 synchronized 代码块public class T1 { public void foo(Object lock) { synchronized (lock) { loc...原创 2020-03-27 09:27:15 · 211 阅读 · 0 评论 -
JVM方法调用
JVM方法调用背景**Java文件在编译过程中不会进行传统编译的连接步骤,方法调用的目标方法以符号引用的方式存储在Class文件中,这种多态特性给Java带来了更灵活的扩展能力,**但也使得方法调用变得相对复杂,需要在类加载期间,甚至到运行期间才能确定目标方法的直接引用。重载与重写在 Java 程序里,如果同一个类中出现多个名字相同,并且参数类型相同的方法,那么它无法通过编译。也就是说,在...原创 2020-03-20 09:47:48 · 186 阅读 · 0 评论 -
深入理解JVM第十三章笔记
深入理解JVM第十三章笔记线程安全对“线程安全”一个比较准确的定义:当多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象时线程安全的Java中的线程安全限定场景:多个线程之间存在共享数据访问这个前提不可变在Java中,不可变对象一定是线程安全的,...原创 2020-03-18 09:51:41 · 195 阅读 · 0 评论 -
深入理解JVM第十二章笔记
深入理解JVM第十二章笔记背景为了充分压榨计算机处理器的性能,多任务处理在现代计算机操作系统中已经是一项必备技能了。另外由于大部分的计算任务都不可能只靠处理器来单独“计算”完成,处理器需要与内存交互,如读取运算数据,存储运算结果等,这个IO操作是很难消除的。而如今的计算机的存储设备与处理器的运算速度有几个数量级的差距,所以需要在处理器与内存之间加入一层—高速缓存,用来将运算需要使用到的数据复...原创 2020-03-17 17:43:18 · 220 阅读 · 0 评论 -
深入理解JVM第十一章笔记
深入理解JVM第十一章笔记背景Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”(Hot Spot Code)。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time Compile...原创 2020-03-17 09:37:49 · 207 阅读 · 0 评论 -
深入理解JVM第十章笔记
深入理解JVM第十章笔记背景Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实叫“编译器的前端”更准确一些)把.java文件转变成.class文件的过程;也可能是指虚拟机的后端运行期编译器(JIT编译器,Just In Time Compiler)把字节码转变成机器码的过程;还可能是指使用静态提前编译器(AOT编译器,Ahead Of Time Comp...原创 2020-03-16 17:35:06 · 216 阅读 · 0 评论 -
深入理解JVM第八章笔记
深入理解JVM第八章笔记背景执行引擎是JVM最核心的组成部分之一,“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行的能力,区别是物理机的执行引擎是直接建立在处理器,硬件,指令集,操作系统层面上的,而虚拟机的执行引擎则是由自己实现的。所以可以自行制定指令集与执行引擎的结构体系。运行时栈帧每一个线程都有一个栈,也就是前文中提到的虚拟机栈,栈中的基本元素我们称之为栈帧。栈帧是用于...原创 2020-03-16 09:56:19 · 225 阅读 · 0 评论 -
深入理解JVM第七章笔记
深入理解JVM第七章笔记类加载虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型特别的:Java语言中,类型的加载,连接,初始化过程都是在程序运行期间完成的类加载时机类从被加载到虚拟机内存到卸载出内存,整个生命周期:加载验证准备解析初始化使用卸载...原创 2020-03-15 10:09:32 · 208 阅读 · 0 评论 -
深入理解JVM第六章笔记
深入理解JVM第六章笔记无关性字节码,各种不同的平台的虚拟机与所有平台都统一使用的程序存储格式,它也是构成Java语言平台无关性的基石。Java虚拟机不和包括Java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联。Class文件包含了Java虚拟机指令集和符号表以及若干其他辅助信息。Class类文件的结构class文件是一组以8位字节为基础单位的二进制流,各个...原创 2020-03-14 14:13:30 · 274 阅读 · 0 评论