乌鲁木齐Java培训中JVM的原理
一、基础理论知识。
1.java虚拟机的生命周期:
Java虚拟机的生命周期一个运行的Java虚拟机有一个明确的任务:执行Java程序。他在程序开始执行时运行,在程序结束时停止。如果在同一台机器上运行三个程序,将会有三个运行的Java虚拟机。Java虚拟机总是以main()方法开始,该方法必须是公共的,返回void,并直接接受字符串数组。当程序执行时,您必须向Java虚拟机指示这个替代main()方法的类名。Main()方法是程序的起点,它执行的线程被初始化为程序的初始线程。程序中的其他线程都是他启动的。Java中有两种线程:守护进程和非守护进程。守护线程是Java虚拟机本身使用的线程,例如,负责垃圾收集的线程就是守护线程。当然,您也可以将自己的程序设置为守护线程。包含Main()方法的初始线程不是守护线程。只要有普通线程在Java虚拟机中执行,Java虚拟机就不会停止。如果您有足够的权限,可以调用exit()方法终止程序。
2.java虚拟机的体系结构;
在Java虚拟机的规范中,定义了一系列的子系统、内存区域、数据类型和用户指南。这些组件构成了Java虚拟机的内部结构。它们不仅为Java虚拟机的实现提供了清晰的内部结构,而且严格规定了Java虚拟机实现的外部行为。每个Java虚拟机都有一个类加载器子系统,负责加载程序中的类型(类和接口)并给它们一个**的名称。每个Java虚拟机都有一个执行引擎,负责执行加载的类中包含的指令。程序的执行需要一定的内存空间,比如字节码、加载类的其他附加信息、程序中的对象、方法的参数、返回值、局部变量、处理的中间变量等等。Java虚拟机将所有这些信息保存在数据区。虽然每个Java虚拟机实现都包含数据区,但是在Java虚拟机规范中数据区是非常抽象的。
许多结构细节留给了Java虚拟机实现者自己。不同Java虚拟机实现的内存结构差异很大。一些实现可能会占用大量内存,而下面的其他实现可能只占用少量内存。一些实现可能使用虚拟内存,而另一些则不使用。这种相对细化的Java虚拟机内存规范可以使Java虚拟机在广泛的平台上实现。部分数据区由整个程序共享,其他部分由单独的线程控制。每个Java虚拟机都包含一个方法区和一个堆,由整个程序共享。Java虚拟机加载并解析一个类后,会将解析后的信息从类文件保存到方法区域。程序执行期间创建的对象保存在堆中。当一个线程被创建时,它将被分配它自己的pc寄存器“PC寄存器”和Java栈。当线程不使用本地方法时,PC寄存器存储线程执行的下一条指令。Java堆栈存储调用方法时线程的状态,包括局部变量、调用方法的参数、返回值和处理的中间变量。
关于乌鲁木齐Java培训,咱们今天就先讲述到这里,如果你还有任何疑问,或对于乌鲁木齐计算机培训等还有想要了解的地方,可以电话咨询,当然也可以在线咨询我们的客服哦!
【如果您还没有关注“公司名称”手机网站】