网站推广服务具体内容包括哪些,网站建设iis配置,经济师考试时间2023报名时间,建站优化推广文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的三大功能6、JVM的分类7、JVM的生命周期 1、虚拟机
虚拟机#xff0c;Virtual Machine#xff0c;一台虚拟的计算机#xff0c;用来执行虚拟计算机指令。分为#xff1a;
系统虚拟机#x… 文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的三大功能6、JVM的分类7、JVM的生命周期 1、虚拟机
虚拟机Virtual Machine一台虚拟的计算机用来执行虚拟计算机指令。分为
系统虚拟机如VMware是完全对物理计算机的仿真程序虚拟机如JVM专门为执行单个计算机程序而设计JVM中执行的指令就是Java字节码指令
不论是哪种类型虚拟机其上面运行的软件或者程序都被限制于虚拟机所提供的资源之内。
2、Java虚拟机 JVMJava Virtual Machine 即Java虚拟机一台处理Java字节码文件解释为二进制文件的虚拟计算机本质是一个运行在计算机上的程序。 JVM运行在操作系统之上并没有与计算机的硬件做直接的交互。因此不同的操作系统对应着不同的JVM JVM ⇒ JRE ⇒ JDK三者的关系 3、JVM的整体结构
以HotSpot为例 以上架构分三层看首先javac编译器将xx.java源文件编译为xx.class字节码文件
最上层由类装载器将字节码文件加载到内存中生成一个大的class对象中间层其中方法区、堆区是所有线程共享而栈、程序计数器、寄存器是一个线程一个最下层执行引擎里包括解释器、JIT即时编译器、GC垃圾回收器
上面结构图再详细 4、Java代码的执行流程
Java做为一种跨平台的语言一次编译到处运行。即Java源代码被成功编译为.class字节码后换平台运行无需再次编译。 具体流程为
Java源文件x.java被编译器javac.exeJDK自带编译成字节码文件x.class类装载器加载字节码文件到JVMJVM执行引擎中的解释器将字节码文件处理成二进制文件操作系统执行二进制文件和硬件进行交互 PSJava虚拟机不关心运行在其内部的程序是用的什么语言只要是遵循其规范编译的字节码文件就都能运行。 换言之不是牛在Java而是JVM。Java是跨平台的语言 ⇐ JVM是跨语言的平台
5、JVM的三大功能 1解释和运行 把字节码解释成二进制机器码 2内存管理 自动为对象、方法等分配内存空间以及回收不再使用的对象 3即时编译JITJust-In-Time 对热点代码热点代码即很短的时间内被多次调用 进行优化提升执行效率。Java如果不做任何优化性能不如C、C因为后者编译后得到的就是机器码少了解释这一步 Java多字节码解释为机器码这一步是为例支持跨平台有失有得 即时编译是将热点代码解释完后保存在内存中下次执行直接调用省了一步解释操作的时间 6、JVM的分类
Sun Classic VM , 1996 Java1.0 只有解释器没有JIT即时编译器因此性能较差Exact VMJava1.2准确式内存管理可直到内存中某个位置的数据具体是什么类型HotSpot VMJDK1.3时成为默认的虚拟机JRockit VM专注于服务器端不包含解释器IBM的J9与上面的HotSpot、JRockit是三大商用虚拟机2017年开源命名为Open J9KVM和CDC/CLDC HotspotMicrosoft JVMTaobao JVM阿里… Open JDK版本的HotSpot可以做二次开发不管是二开还是开发新的虚拟机都要遵守Oracle制定的JVM开发规范。最后默认的HotSpot的发展历程 7、JVM的生命周期
STEP1启动JVM的启动时通过引导类加载器bootstrap class loader创建一个初始类initial class来完成的不同的虚拟机这个类也不同
STEP2执行开始执行Java程序时JVM开始运行程序执行结束JVM也就停止了jsp看JVM进程会发现其随着程序的结束而结束
STEP3退出程序正常执行结束JVM退出程序执行中遇到异常或错误且一值向上throw到了main方法main再抛就到JVMJVM退出操作系统出现错误也会可知JVM进程终止JVM退出某个线程调用Runtime类或System类的exit方法或者说是Runtime类的halt方法底层是native halt0方法