Java内存区域与内存溢出异常
Java内存区域与内存溢出异常
虚拟机内存划分,可能造成内存溢出异常的代码和操作
——>各区域的内容
1.内存中个区域存放什么数据
程序计数器:
虚拟机栈:
局部变量表:存放编译器可知的各种基本数据类型(boolean,byte,char,short,int,float,double,long),对象引用,returnAddress类型
操作数桢:一个后入先出的栈
动态链接:符号引用在每一次运行期间转化为直接应用
方法出口:
本地方法栈:类似虚拟机栈
堆:存放对象实例,几乎所有的对象实例都在这里分配内存
新生代:
老年代:
方法区:存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码
note:对象的类型数据
永久代
运行时常量池:存放编译器生成的各种字面量和符号引用
直接内存:
外延:
字面量:如文本字符串,声明为final的常量值等
符号引用:类和接口的全限定名,字段的名称和描述符方法的名称和描述符
2.如何创建,如何布局,如何访问
对象头:存储对象自身的运行时数据
实例数据:程序代码中定义的各种类型的字段内容
对齐填充:占位符
垃圾收集器与内存分配策略
根据实际需求,选择最优的收集方式和参数组合
——>各种收集的器的特点。
虚拟机性能监控与故障处理工具
JDK的6个命令行工具及两个可视化的故障处理工具
调优案例分析与实战
作者:LeeRuJun
出处:http://www.cnblogs.com/free-will/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号