java之JVM各类机制是什么

1.类加载机制

分为加载、验证 、准备 、解析 、初始化、 使用 、卸载。

(1)加载

在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象 等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 。

(2)验证

校验字节码文件的正确性 。

(3)准备

给类的静态变量分配内存,并赋予默认值 。

(4)解析

将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main()方法)替换为指向数据 所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成),动态链接是在程 序运行期间完成的将符号引用替换为直接引用,下节课会讲到动态链接 。

(5)初始化

2.双亲委派机制

对类的静态变量初始化为指定的值,执行静态代码块。

应用程序类加载器AppClassLoader加载类的双亲委派机制源码,AppClassLoader的loadClass方法最终会调用其父类ClassLoader的loadClass方法,该方法的大体逻辑如下:

首先,检查一下指定名称的类是否已经加载过,如果加载过了,就不需要再加载,直接返回。

如果此类没有加载过,那么,再判断一下是否有父加载器;如果有父加载器,则由父加载器加载(即调用parent.loadClass(name, false);

Java中的JVM各类机制是什么


)。或者是调用bootstrap类加载器来加载。

如果父加载器及bootstrap类加载器都没有找到指定的类,那么调用当前类加载器的findClass方法来完成类加载。

3.全盘负责委托机制

“全盘负责”是指当一个ClassLoder装载一个类时,除非显示的使用另外一个ClassLoder,该类所依赖及引用的类也由这个ClassLoder载入。



Java作为一种广泛使用的高级编程语言,其中的JVM虚拟机是相当重要的组成部分。JVM全称为Java虚拟机,是一种可以运行Java字节码的虚拟计算机,是Java语言与操作系统之间的翻译器和抽象层。JVM在Java语言中扮演着极为重要的角色,实现了代码跨平台运行,并且提供了各种优秀的机制,使得Java应用具有了出色的性能和安全性。接下来,我们将会依次探究JVM中的各类机制。
一、JVM中的垃圾回收机制
在Java程序的运行过程中,垃圾回收机制可以自动地帮助我们管理内存,回收不再需要的对象,因此可以极大地减轻Java程序员的负担。JVM中的垃圾回收机制分为几类:新生代垃圾回收器、老年代垃圾回收器、永久代垃圾回收器。新生代垃圾回收器主要负责管理新创建的对象,老年代垃圾回收器主要负责管理生命周期变长的对象,永久代垃圾回收器主要负责常量池和类信息等内容的回收。垃圾回收机制是JVM中最为重要的机制之一,Java程序员必须掌握。
二、JVM中的类加载机制
Java的类加载机制使得Java程序可以实现动态的类加载和卸载,这是得益于JVM中的类加载器机制。类加载器实现了在运行时动态加载Java类文件的功能,可以让程序在运行时动态地添加新的类并运行它们。类加载器分为系统类加载器、扩展类加载器和自定义类加载器,而类加载的过程则可以分为加载、验证、准备、解析和初始化等几个阶段。了解类加载机制可以帮助Java程序员更好地理解运行机制,更好地使用Java语言。
三、JVM中的字节码执行机制
Java程序在运行时首先需要将源代码编译成字节码,然后再由JVM虚拟机来实现执行。字节码执行机制就是指JVM虚拟机如何执行Java字节码的内部机制。在执行字节码的过程中,JVM会涉及到方法调用、对象构建、异常处理等不同的方面。JVM虚拟机可以通过JIT编译、透明的代码优化和泛型橡皮图等手段来优化Java程序的执行效率和性能。对Java程序员而言,理解字节码执行机制是非常必要的。
总之,作为Java程序员,必须掌握JVM中的各类机制,在实际项目的开发中能够根据需要进行使用和优化。同时,我们应该始终关注和研究JVM的更新和进展,以便更好地应对Java应用的运行问题。