Java内存区域与内存溢出异常

Java内存区域与内存溢出异常
虚拟机内存划分,可能造成内存溢出异常的代码和操作
——>各区域的内容
1.内存中个区域存放什么数据
程序计数器:

虚拟机栈:
局部变量表:存放编译器可知的各种基本数据类型(boolean,byte,char,short,int,float,double,long),对象引用,returnAddress类型
操作数桢:一个后入先出的栈
动态链接:符号引用在每一次运行期间转化为直接应用
方法出口:

本地方法栈:类似虚拟机栈

堆:存放对象实例,几乎所有的对象实例都在这里分配内存
新生代:
老年代:

方法区:存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码
note:对象的类型数据
永久代
运行时常量池:存放编译器生成的各种字面量和符号引用

直接内存:

外延:
字面量:如文本字符串,声明为final的常量值等
符号引用:类和接口的全限定名,字段的名称和描述符方法的名称和描述符

2.如何创建,如何布局,如何访问
对象头:存储对象自身的运行时数据
实例数据:程序代码中定义的各种类型的字段内容
对齐填充:占位符

垃圾收集器与内存分配策略
根据实际需求,选择最优的收集方式和参数组合
——>各种收集的器的特点。

虚拟机性能监控与故障处理工具
JDK的6个命令行工具及两个可视化的故障处理工具

调优案例分析与实战

posted @ 2017-10-19 11:22  Free丶Will  阅读(109)  评论(0)    收藏  举报