JVM高级特性和最佳实践书籍总结
2018-02-13 16:37
381 查看
第一部分:Java内存区域与内存溢出异常
java程序在运行时,会把管理的内存划分为:方法区,虚拟机栈,本地方法栈,堆,程序计数器
1.程序计数器:是一块较小的内存区域,它的作用可以看做当前线程所执行的字节码的行号指示器。在虚拟机中,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器时间的方式。因此为了线程切换后能恢复到正确的执行位置,每条线程都需要一个独立的程序计数器,各条线程之间的计数器互不影响吗,独立存储。
2.虚拟机栈:也是线程私有的,它的生命周期与线程相同。每一个方法被调用直至执行完成的过程,就对应着一个栈帧从虚拟机栈中从入栈到出栈的过程(栈帧:是方法运行期的基础数据结构)
3.本地方法栈:与虚拟机栈所发挥的作用是非常相似的。区别就是虚拟机栈为虚拟机执行java方法服务。而本地方法栈执行的为虚拟机使用到的native方法。
4.堆:是所有线程共享的一块内存区域,在虚拟机启动时创建。唯一目地就是存放对象的实例,从内存回收的角度来看,由于收集器基本都是采用的分代收集算法。
5.方法区:和Java堆一样,是各个线程共享的内存区域。它用来存储已被虚拟机加载的类信息,常量,静态变量,访问修饰符
6.访问方式:句柄,指针;如果使用句柄 访问,java堆中将会划分一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象的实例数据和类型数据各自的地址信息;如果使用指针访问方式,java堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,reference中直接存储的就是对象地址。
java程序在运行时,会把管理的内存划分为:方法区,虚拟机栈,本地方法栈,堆,程序计数器
1.程序计数器:是一块较小的内存区域,它的作用可以看做当前线程所执行的字节码的行号指示器。在虚拟机中,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器时间的方式。因此为了线程切换后能恢复到正确的执行位置,每条线程都需要一个独立的程序计数器,各条线程之间的计数器互不影响吗,独立存储。
2.虚拟机栈:也是线程私有的,它的生命周期与线程相同。每一个方法被调用直至执行完成的过程,就对应着一个栈帧从虚拟机栈中从入栈到出栈的过程(栈帧:是方法运行期的基础数据结构)
3.本地方法栈:与虚拟机栈所发挥的作用是非常相似的。区别就是虚拟机栈为虚拟机执行java方法服务。而本地方法栈执行的为虚拟机使用到的native方法。
4.堆:是所有线程共享的一块内存区域,在虚拟机启动时创建。唯一目地就是存放对象的实例,从内存回收的角度来看,由于收集器基本都是采用的分代收集算法。
5.方法区:和Java堆一样,是各个线程共享的内存区域。它用来存储已被虚拟机加载的类信息,常量,静态变量,访问修饰符
6.访问方式:句柄,指针;如果使用句柄 访问,java堆中将会划分一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象的实例数据和类型数据各自的地址信息;如果使用指针访问方式,java堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,reference中直接存储的就是对象地址。
相关文章推荐
- 深入理解Java虚拟机JVM高级特性与最佳实践阅读总结——第三章垃圾收集器与内存分配策略
- 深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第十三章 线程安全与锁优化
- 2016书单总结--深入理解Java虚拟机-JVM高级特性与最佳实践--自动内存管理
- 深入理解Java虚拟机JVM高级特性与最佳实践阅读总结——第二章 Java内存区域与内存溢出异常
- 深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第七章 虚拟机类加载机制
- 深入理解Java虚拟机(JVM高级特性与最佳实践java虚拟机)的一些知识总结
- 深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第十二章 Java内存模型与线程
- 《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——虚拟机字节码执行引擎
- 《深入java虚拟机--JVM高级特性与最佳实践》学习笔记(三) GC原理与垃圾收集器
- [连载] 深入理解Java虚拟机(JVM高级特性与最佳实践) 学习笔记连载分享
- [连载] 深入理解Java虚拟机(JVM高级特性与最佳实践)之 【走近Java】
- 《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——Java内存模型与线程
- JVM高级特性与最佳实践-JConsole的使用
- 《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——虚拟机类加载机制
- 读书_JVM高级特性与最佳实践
- 《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——Java类文件结构
- 《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——程序编译与代码优化(一)
- 阅读JVM高级特性与最佳实践-1
- 阅读JVM高级特性与最佳实践-2
- 《深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)》pdf