JVM总结
来源:互联网 发布:辐射4女捏脸数据 编辑:程序博客网 时间:2024/05/01 07:04
1、In Action
(1)
(2)
2、TIPS
(1)JVM主要包括两个子系统和两个组件。
两个子系统分别是Classloader子系统和Execution engine(执行引擎)子系统;
两个组件分别是Runtime data area(运行时数据区域)组件和Native interface(本地接口)组件;
Classloader子系统的作用:
根据给定的全限定名类名(如:org.cendy.HelloWorld)来装载class文件的内容到Runtime data area中的method area(方法区域);
Execution engine(执行引擎)子系统的作用:
执行classes中的指令。任何JVM specification实现(JDK)的核心都是Execution engine,不同的厂商有自己不同的实现。
Native interface(本地接口)组件:
与Native libraries交互,是其它编程语言交互的接口。当调用native方法时,就进入了一个全新的且不受JVM限制的世界。但JVM无法控制native heap OutOfMemory。
Runtime data area组件:就是常说的JVM的内存。主要有五个部分:
heap:
method area:被装载的class的信息存储在method area的内存中。当JVM装载某个类型时,它使用类装载器定位相应的class文件,然后读入这个class文件内容并把它传输到JVM中。
stack:
program counter(程序计数器):每一个线程都有自己的PC寄存器,也是该线程启动时创建的。PC寄存器的内容总是指向下一条将被执行指令的地址。
native method stack(本地方法栈):保存native方法进入区域的地址;
注:只有heap和method area是被所有线程共享使用的;而stack、program counter、native method statck是以线程为粒度的,每个线程独自拥有自己的部分。
方法区:
在JVM实例中,加载的类型的相关信息被保存在内存的一个逻辑区域中,称为方法区。当JVM加载一个类型时,它用类加载器查找需要的class文件。类加载器读入class文件并以二进制数据的线性流传递给JVM。JVM从二进制数据中提取有关类型的信息,并将之保存在方法区中。而保存类里定义的类变量(静态变量)的内存被从方法区中拿走。
(2)Sun制定JVM规范:
a、指令集
b、寄存器
c、类文件的格式
d、栈
e、垃圾回收堆
f、存储区
(3)
3、PS
(1)调整JVM内存大小
(2)
- JVM总结--JVM体系结构
- jvm总结
- JVM总结
- JVM总结
- JVM总结
- JVM总结
- jvm总结
- JVM总结
- JVM总结
- JVM总结
- JVM 总结
- JVM 总结
- jvm总结
- JVM总结
- JVM总结
- 总结JVM
- JVM总结
- jvm 总结
- 服务器并发数规律研究
- 对象数组和指向对象的指针 指向类成员的指针
- apache整合tomcat实现web服务器解析
- 新的开始
- 在VirtualBox 3.2.10中安装Gentoo
- JVM总结
- MySql 连接错误:Cannot get hostname for your address 事件 100
- 多AJAX调用解决顺序问题
- 20130101新年的第一天
- python client使用 http post 到server端
- 【总结备用】清除应用程序所有缓存
- java.net.SocketException/BindException/ConnectException等异常
- 站得高才能看得远
- APACHE整合TOMCAT的三种方式