- 博客(4)
- 收藏
- 关注
原创 JVM总结3-Java的类加载机制
类是在运行期间动态加载的。1 类的生命周期包括以下 7 个阶段:加载(Loading)验证(Verification)准备(Preparation)解析(Resolution)初始化(Initialization)使用(Using)卸载(Unloading)其中解析过程在某些情况下可以在初始化阶段之后再开始,这是为了支持 Java 的动态绑定。2. 类初始化时机虚拟机规范中并没有强制约束何时进行加...
2018-03-14 13:00:57
89
原创 JVM总结2-Jvm的垃圾收集机制
垃圾收集程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。垃圾回收主要是针对 Java 堆和方法区进行。1. 判断一个对象是否可回收1.1 引用计数给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象可被回收。两个对象出现循环引用的情况下,此时引用计数器...
2018-03-12 22:52:41
141
原创 JVM总结1-Java的内存模型
注:白色区域为线程私有的,蓝色区域为线程共享的。1. 程序计数器记录正在执行的虚拟机字节码指令的地址(如果正在执行的是 Native 方法则为空)。2. Java 虚拟机栈每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。该区域可能抛出以下异常:当线程请...
2018-03-07 23:13:57
162
原创 Java并发机制的底层实现原理
JAVA代码在编译后会变成字节码,字节码被类加载器加载到JVM中,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,JAVA中所使用的并发机制依赖于JVM的实现和CPU的指令。->参考《JAVA并发编程的艺术》1.volatile的应用volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的可见性,不能保证操纵的原子性。...
2018-03-02 10:41:05
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人