
虚拟机
文章平均质量分 76
你丫才是码农
这个作者很懒,什么都没留下…
展开
-
虚拟机类加载机制
虚拟机类加载机制1.把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。java的类型加载和连接过程都是在程序运行期间完成的,java天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接实现的。2.类的生命周期:加载,验证,准备,解析,初始化,使用,卸载。 (验证,准备,解析称为连接)虚拟机规定有...原创 2018-05-27 16:39:05 · 178 阅读 · 0 评论 -
虚拟机字节码执行引擎
虚拟机字节码执行引擎1.执行引擎在执行JAVA代码的时候可能有解释执行(通过解释器执行)和编译执行(通过及时编译器产生本地代码执行)两种选择2.运行时栈帧结构: 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,是虚拟机栈的栈元素, 存储了局部变量表,操作数栈,动态链接和方法返回地址(指向了一条字节码指令的地址) 1.局部变量表:用于存放方法参数和方法内部定义的局部变量,...原创 2018-05-27 20:08:08 · 163 阅读 · 0 评论 -
java编译器优化
java编译器优化1.把java文件转变成呢过class文件的过程2.javac编译器的过程: 1.解析与填充符号表过程 2.插入式注解处理器的注解处理过程 3.分析与字节码生成过程 解析与填充符号表: 1.词法,语法分析:词法分析是将源代码的字符流转变为标记(Token)集合,标记是编译过程的最小元素:int, a, =, b, +, 1 语法分析:根据Token序列来构造抽象语...原创 2018-05-28 00:08:04 · 876 阅读 · 0 评论 -
java运行期优化
java运行期优化 1.虚拟机发现某个方法或代码块运行的特别频繁,会把它认为是“热点代码”,为了提升执行效率,把热点代码编译成平台相关的机器码 JIT编译器 2.即时编译器: 1.解释器和编译器 需要迅速启动和执行的时候,解释器先发挥作用。时间久了,为了执行效率,编译器发挥作用 HotSpot虚拟机2个即时编译器 Client Compiler和Server Compiler(C1...原创 2018-05-28 01:06:59 · 509 阅读 · 0 评论 -
java内存模型与线程
java内存模型与线程1.衡量一个服务性能好坏,没秒事务处理数(TPS)是最重要的指标之一2.由于计算机的存储设备与处理器的运算速度之间有几个数量级差距,所以加入高速缓存 来作为内存与处理器之间的缓冲 高速缓存解决了处理器与内存的速度矛盾,也带来了 缓存一致性的问题 多个处理器都有自己的高速缓存,却共享一个主内存3.java内存模型: 1.主内存,工作内存:主内存主要对应java堆中...原创 2018-05-29 00:38:27 · 234 阅读 · 0 评论 -
线程安全和锁优化总结
线程安全和锁优化总结线程安全各种操作共享的数据分为5类1.不可变不可变对象一定是线程安全的若共享数据是基本类型,只要是final修饰的就可保证是不可变的把对象中带有状态的变量都声明为final2.绝对线程安全大多数线程安全的类都不是绝对线程安全3.相对线程安全对一些特定顺序的连续调用,可以需要在调用端使用额外的同步手段保证调用正确性:如Vector HashTable4....原创 2018-05-29 23:41:48 · 275 阅读 · 0 评论