JAVA 虚拟机学习整理 一、基本结构
2016-11-23 16:51
232 查看
一、JAVA虚拟机基本结构
1. JAVA虚拟机的基本结构图图1.1JVM内部结构图
类加载子系统:负责从文件系统或网络加载Class信息,加载的类信息存放在方法区中
方法区:JDK1.6/1.7可以理解为permgen space (永久驻留区),里面还包括一些运行时的常量池信息,
字符串字面值. JDK1.8开始已经没有这个概念,1.8称为”元空间”,其大小只受物理内存限制。
堆:虚拟机启动时候建立,存放java实例对象,所有线程共享该区域
直接内存:物理内存,java NIO库允许java直接使用物理内存
栈:每个线程都有一个私有的java栈,存放局部变量、帧、方法参数等信息。
本地方法栈:和栈类似,主要用于java本地方法调用,如调用C++程序方法
PC寄存器:指向正在被执行的指令,每个线程的私有区域
2.堆和栈的内部一般结构
大多数情况下新创建的对象首先分配到End区,进过一次新生代回收后,
如果对象还存活就进入s0或s1区,之后每经过一次回收,
如果对象还存活年龄就加1,达到一定年龄还存活就进入老年代。
参数 -Xmx500m 指定堆最大空间为500M
参数 -Xss10m 指定栈的最大空间为10M
一个栈帧包括 {局部变量表,操作数栈,帧数据区}
三个部分。
局部变量表:保存函数的参数以及局部变量,函数调用结束,
随栈帧的销毁局部变量表也销毁。
操作数栈:主要保存计算过程中的结果和变量的临时存储空间
帧数据区:保存访问常量池的指针,异常处理表也是其中的一部分。
栈上分配:线程私有的对象(不被其他线程访问的对象)可以被分配到栈上,
函数调用结束后自行销毁,比如函数中定义的局部对象等。
3.堆和栈、方法区的关系
有如下代码:相关文章推荐
- java之jvm学习笔记十三(jvm基本结构)
- java之jvm学习笔记十三(jvm基本结构)
- java学习之路 之 基本语法-程序流程控制-循环结构-嵌套循环练习题
- [学习笔记] Java核心技术 卷一:基础知识 Java 的基本程序设计结构(一)
- java 虚拟机学习笔记整理001--运行时的数据区域+垃圾收集算法
- 重新学习Java——Java基本的程序设计结构(一)
- Java多线程学习-并发编程实践基本概念总结整理
- Java 虚拟机基本结构介绍
- java学习笔记-基本程序设计结构
- java学习笔记(一)程序基本结构
- 重新学习Java——Java基本的程序设计结构(二)
- Java核心技术(第8版)学习笔记_基本的程序设计结构
- 黑马程序员--【学习日记二】——java的基本结构
- java之jvm学习笔记十三(jvm基本结构)
- Java学习——Java基本的程序设计结构笔记(一)
- JAVA学习笔记-基本程序设计结构
- java之jvm学习笔记十三(jvm基本结构)
- java之jvm学习笔记十三(jvm基本结构)
- Java 虚拟机基本结构
- Java_每天学习一点点之基本结构