- 面试都会问
- 追求极客精神
- 中高级Java程序员必备,项目管理,调优需要
- Oracle官方JVM规范
- 中文版Java虚拟机规范(JDK8)
- 《深入理解Java虚拟机》
- 《自己动手写Java虚拟机》
Java是目前应用最广泛的软件开发平台之一。随着Java以及Java社区的不断壮大,Java不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。
Java语言跨平台,“write once, run anywhere”.
JVM:跨语言的平台 字节码字节码就是能在JVM上执行的一种文件格式。字节码不一定是由Java语言编译生成的,也有可能是由其他语言编译而成的。所以字节码又叫JVM字节码。
JVM只认字节码。字节码文件中包含了JVM指令集和符号表,还有一些其他辅助信息。
四、虚拟机与Java虚拟机 虚拟机虚拟机其实就是一台虚拟的计算机。是一款软件,用来执行一系列虚拟计算机指令。
虚拟机分为系统虚拟机和程序虚拟机。系统虚拟机(如VMWare)其实就是对物理计算机的仿真,而程序虚拟机(Java虚拟机)是专门为执行单个计算机程序而设计。
Java虚拟机Java虚拟机就是一台执行字节码的虚拟计算机。
Java虚拟机主要特点- 自动内存管理
- 自动垃圾回收
JDK包含JRE,JRE包含JVM。
五、JVM的整体 下面这张图很重要!讲的是如何将class字节码文件转换为机器可以识别的机器代码。一定要能自己画出来! 六、Java代码的执行流程 七、JVM的架构模型Java编译器输入的指令流是基于栈的指令集架构,另一种指令集架构是基于寄存器的指令集架构。
通过反编译认识基于栈的指令集架构
- 跨平台
- 指令集小
- 指令多
- 执行效率不如基于寄存器的指令集架构
JVM的启动是通过引导类加载器创建一个初始类来完成的,这个类是由虚拟机的具体实现指定的。
JVM的执行JVM的运行就是为了执行Java程序的。
程序开始执行时JVM开始运行,程序运行结束后JVM停止。
执行一个所谓的Java程序的时候,真正在执行的是一个叫做Java虚拟机的进程。
JVM的退出当有如下事件发生时,JVM停止
- 程序正常执行结束
- 程序在执行过程中遇到了异常或错误而终止
- 由于 *** 作系统出现错误而导致Java虚拟机进程终止
- 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且Java安全管理器也允许这次exit *** 作或halt *** 作。
SUM classic VM
Exact VM
HotSpot VM
JRockit VM
J9 VM
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)