美文网首页
JVM类加载过程及类加载器详解

JVM类加载过程及类加载器详解

作者: 那就这样吧丶xx | 来源:发表于2022-04-27 16:13 被阅读0次

类加载过程详解

类的生命周期

加载:获取此类的二进制流,并加载到方法区,并在堆中生成一个java.lang.Class对象,作为方法区这个类的访问入口。
验证:验证字节流是否符合虚拟机的标准。
准备:为类变量(static)分配内存(注意,逻辑上的方法区,实际上的堆)和零值(初值)。
解析:把类中的符号引用转换为直接引用
初始化:执行类构造器()方法,为类变量(static)初始化值(自定义值)。

类加载器

所有的类都由类加载器加载,加载的作用就是将 .class文件加载到内存。
启动类加载器):最顶层的加载类,由 C++实现,负责加载 %JAVA_HOME%/lib目录下的 jar 包和类或者被 -Xbootclasspath参数指定的路径中的所有类
扩展类加载器 :主要负责加载 %JRE_HOME%/lib/ext 目录下的 jar 包和类,或被 java.ext.dirs 系统变量所指定的路径下的 jar 包。
应用程序类加载器:面向我们用户的加载器,负责加载当前应用 classpath 下的所有 jar 包和类

双亲委派模型

classloader_WPS图片.png

在类加载的时候,系统会首先判断当前类是否被加载过。已经被加载的类会直接返回,否则才会尝试加载。加载的时候,首先会把该请求委派给父类加载器的 loadClass() 处理,因此所有的请求最终都应该传送到顶层的启动类加载器 BootstrapClassLoader 中。当父类加载器无法处理时,才由自己来处理。当父类加载器为 null 时,会使用启动类加载器 BootstrapClassLoader 作为父类加载器。

双亲委派模型的好处

双亲委派模型保证了 Java 程序的稳定运行,可以避免类的重复加载,也保证了 Java 的核心 API 不被篡改。

总结

Java文件经过编译后变成 .class 字节码文件
字节码文件通过类加载器被搬运到 JVM 虚拟机中
虚拟机主要的5大块:方法区,堆都为线程共享区域,有线程安全问题,栈和本地方法栈和计数器都是独享区域,不存在线程安全问题,而 JVM 的调优主要就是围绕堆,栈两大块进行

相关文章

  • JVM性能调优

    JVM类加载机制详解 从JDK源码级别深度剖析加载全过程 启动类、扩展类、应用程序类加载器源码深度剖析 类加载双亲...

  • JVM类加载学习三-类加载器

    JVM类加载器 @(Java)[JVM|类加载器] 类加载过程中的加载阶段在JVM的外部实现。这样做可以让应用程序...

  • JVM类加载过程及类加载器详解

    类加载过程详解 类的生命周期 加载:获取此类的二进制流,并加载到方法区,并在堆中生成一个java.lang.Cla...

  • JAVA类加载机制

    jvm之java类加载机制和类加载器(ClassLoader)的详解java类加载机制:全盘负责、双亲委派、缓存机...

  • ClassLoad

    类的加载过程:类的加载—>类的连接—>类的初始化 类加载器ClassLoader JVM 定义了两种类型的类加载器...

  • 每天一个知识点(3)--JVM-类加载子系统-类加载器

    JVM的类加载子系统负责加载相关的类,加载类是JVM中类加载器的功能和职责。首先明确下JVM中的类加载器,分为以下...

  • 类的加载

    jvm中,类的加载分为:加载+链接+初始化在这个过程中,类的加载少不了类加载器。它与反射功能类似。 类加载器分为启...

  • 类加载

    jvm的类加载,可以分为以下3个步骤 加载 加载,是指jvm借助类加载器查找字节流,并且据此创建类的过程。对于数组...

  • java类加载机制、类加载器、自定义类加载器

    java类加载机制、类加载器、自定义类加载器 类加载机制 java类从被加载到JVM到卸载出JVM,整个生命周期包...

  • Java面试常问的JVM无从入手?分享32道问题及JVM学习文档

    JVM常问基础的问题 说说Java 类加载过程? JVM 加载 Class 文件的原理机制讲解下? 类加载器是什么...

网友评论

      本文标题:JVM类加载过程及类加载器详解

      本文链接:https://www.haomeiwen.com/subject/hdchyrtx.html