[JVM学习之路]一、初识JVM,了解其结构、模型及生命周期
程序员文章站
2022-03-26 14:48:04
JVM入门简介一、JVM位置JVM是运行在操作系统之上的,与硬件之间没有直接的联系二、JVM的整体结构方法区和堆是所有线程所共享Java栈(jvm虚拟机栈)、本地方法栈和程序计数器是运行时每个线程所独立拥有的三、JVM的架构模型javap -v #反编译Java编译器的指令是基于栈的指令集架构;另一种是基于寄存器的指令集架构由于不同平台的CPU不同,所以不能设计成基于寄存器的。基于栈优点:1.跨平台2.指令集小,编译器容易实现缺点:1.性能下降,实现同样功能...
JVM入门简介
一、JVM位置
JVM是运行在操作系统之上的,与硬件之间没有直接的联系
二、JVM的整体结构
- 方法区和堆是所有线程所共享
- Java栈(jvm虚拟机栈)、本地方法栈和程序计数器是运行时每个线程所独立拥有的
三、JVM的架构模型
javap -v #反编译
Java编译器的指令是基于栈的指令集架构;另一种是基于寄存器的指令集架构
由于不同平台的CPU不同,所以不能设计成基于寄存器的。
基于栈优点:
1.跨平台
2.指令集小,编译器容易实现
缺点:
1.性能下降,实现同样功能需要更多的指令
也就是说执行性能比寄存器差
四、JVM生命周期
jps #打印虚拟机执行进程
JVM生命周期包括启动、执行和退出
1.启动
通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的
2.执行
- 一个运行中的java虚拟机有着一个清晰的任务:执行Java程序;
- 程序开始执行的时候他才运行,程序结束时他就停止;
- 执行一个所谓的Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程。
3.退出
- 程序正常执行结束
- 程序异常或错误而异常终止
- 操作系统错误导致终止
- 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且java安全管理器也允许这次exit或halt操作
- 除此之外,JNI(Java Native Interface)规范描述了用JNI Invocation API来加载或卸载Java虚拟机时,Java虚拟机的退出情况
本文地址:https://blog.csdn.net/qq_41522089/article/details/107564728