码迷,mamicode.com
首页 > 其他好文 > 详细

JVM

时间:2019-10-23 15:22:48      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:地方   字节   java   from   运行时数据区   动态   ror   动态链接   引擎   

JVM(Java Virtual Machine,Java虚拟机)是一个虚构出来的计算机,通过在真实的计算机上模拟各种计算机功能。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java编译器生成的字节码文件,可以在多种平台上不加修改地运行。

Java代码编译运行过程:Java源码文件(.java)-> Java编译器 -> 字节码文件(.class)-> JVM  -> OS 运行。

1. JVM体系结构

类装载器子系统:用来装载 .class 字节码文件。

运行时数据区:方法区、Java堆、Java栈、本地方法栈和程序计数器。

执行引擎:执行字节码或本地方法。

本地方法接口:

垃圾回收器:

方法区被所有线程共享,用于存放被JVM加载的类信息,常量,静态变量等数据。

Java堆被所有线程共享,用于存放对象实例。堆是GC的主要区域,通常分为新生代和老年代。新生代又分为Eden区和两个Survivor区。Eden区主要放新创建对象,From survivor 和 To survivor 保存GC后幸存下的对象,默认情况下占比 8:1:1。会发生OutOfMemoneyError异常。

Java栈是线程私有的,生命周期与线程相同。每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等。每个方法从被调用,直到被执行完。对应着一个栈帧在虚拟机中从入栈到出栈的过程。

JVM实例和JVM执行引擎实例

(1)JVM实例对应一个独立运行的java程序,它是进程级别的。

(2)JVM执行引擎实例则对应了用户运行程序的线程,它是线程级别的。

 

常用的JVM内存调试工具?

jconsole:JDK自带的调试工具;

jvisualvm:监控内存泄露,跟踪垃圾回收、执行时内存、cpu分析、线程分析。

JVM

标签:地方   字节   java   from   运行时数据区   动态   ror   动态链接   引擎   

原文地址:https://www.cnblogs.com/yutb/p/11726368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!