
java虚拟机
文章平均质量分 82
llcream
这个作者很懒,什么都没留下…
展开
-
深入理解java虚拟机第八章笔记
第八章 虚拟机字节码执行引擎一 运行时栈帧结构栈帧适用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的战元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。每一个方法从调用开始到执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧 Current Stack Frame,与...原创 2018-05-11 09:26:11 · 202 阅读 · 0 评论 -
深入理解java虚拟机第十章笔记
第十章 早起(编译期)优化一 Javac编译器编译过程大致可以分为三个过程:解析与填充符号表的过程;插入式注解处理器的注解处理过程;分析与字节码生成过程。1. 解析与填充符号表解析过程由parseFiles()方法完成,包含经典编译原理中的词法分析和语法分析。词法分析是将源代码的字符流转变为标记(Token)集合。语法分析是根据Token序列构造抽象语法树的过程。抽象语法树(Abstract Sy...原创 2018-05-12 10:04:51 · 313 阅读 · 0 评论 -
深入理解java虚拟机第十二章
第十一章 Java内存模型与线程一 Java内存模型1. 主内存与工作内存Java内存模型规定了所有的变量都存储在主内存中。每条线程还有自己的工作内存,线程的工作内存保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。主内存主要对应于Java堆中的对象实例数据部分,而工作内存则对应于虚拟机栈中的部分区域。2. volatile变量v...原创 2018-05-14 15:10:29 · 258 阅读 · 0 评论 -
深入理解java虚拟机第七章笔记
第七章 虚拟机类加载机制与那些编译时需要进行连接的语言不通,java中类型的加载,连接和初始化过程都是在运行期间完成的,这种策略虽然会增加一些性能开销,但是会为java应用程序提供高度的灵活性,java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。一 类加载的时机类的生命周期包括:加载,验证,准备,解析,初始化,使用和卸载7个阶段。其中,验证,准备,解析三个部分统称为...原创 2018-05-08 14:54:22 · 418 阅读 · 0 评论 -
深入理解java虚拟机第十三章
第十三章 线程安全与锁优化一 线程安全与互斥同步内容见java并发编程实战笔记二 非阻塞同步主要思想:先进性操作,如果没有其他线程争用共享数据,那操作就成功了;如果共享数据有争用,产生了冲突,那就采取其他补偿措施(例如不断尝试直到成功为止)。这类乐观指令常用的有:测试并设置,获取并增加,交换,比较并转换(CAS),加载连接/条件存储。其中CAS指令需要有三个操作数,分别是内存位置(可简单理解为变量...原创 2018-05-16 09:50:30 · 237 阅读 · 0 评论