美文网首页
类加载器的概述

类加载器的概述

作者: Shaw_Young | 来源:发表于2021-09-28 10:46 被阅读0次

类加载器是JVM执行类加载机制的前提

ClassLoader的作用:

ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部,转换为一个与目标类对应的java.lang.Class对象实例。然后交给Java虚拟机进行链接、初始化等操作。因此,ClassLoader在整个装载阶段,只能影响到类的加载,而无法通过ClassLoader去改变类的链接和初始化行为。至于它是否可以运行,则由Execution Engine决定。


类加载器最早出现在Java1.0版本中,那个时候只是单纯地为了满足Java Applet应用而被研发出来。但如今类加载器却在OSGI、字节码加解密领域大放异彩。这主要归功于Java虚拟机的设计者们当初在设计类加载器的时候,并没有考虑将它绑定在JVM内部,这样做的好处就是能够更加灵活和动态执行类加载操作。

类的加载分类:显示加载 vs 隐式加载

class文件的显示加载与隐式加载的方式是指JVM加载class文件到内存的方式。

  • 显示加载指的是在代码中通过调用ClassLoader加载class对象,如果直接使用Class.forName(name)或this.getClass().getClassLoader().loadClass加载class对象。
  • 隐式加载则是不直接在代码中调用ClassLoader的方法加载class对象,而是通过虚拟机自动加载到内存中,如在加载某个类的class文件时,该类的class文件中引用了另外一个类的对象,此时额外引用的类将通过JVM自动加载到内存中。

类加载器的必要性

一般情况下,Java开发人员并不需要在程序中显示地使用类加载器,但是了解类加载器的加载机制却显得至关重要。从以下几个方面说:

  • 避免在开发中遇到 java.lang.ClassNotFoundException异常或者java.lang.NoClassDefFoundError异常时,手足无措。只有了解类加载器的加载机制才能够在出现异常的时候快速地根据错误异常日志定位问题和解决问题
  • 需要支持类的动态加载或需要对编译后的字节码文件进行加解密操作时,就需要与类加载器打交道了。
  • 开发人员可以在程序中编写自定义类加载器来重新定义类的加载规则,以便实现一些自定义的处理逻辑。

梦想很模糊,去追,它会渐变清晰。青春励志,奋斗下去别放弃。

相关文章

  • 10. 线程上下文类加载器

    概述 当前类加载器(Current ClassLoader):加载当前类的类加载器每个类都会使用自己的类加载器(即...

  • 深入浅出“类加载器”

    内容概述 “类加载”介绍 “类加载器”介绍 深入“类加载器” 深入“父亲委托机制” 一,“类加载”介绍 “加载”是...

  • 【Java】【反射】类加载的概述和分类

    类加载的概述和分类 类加载器的概述负责将.class文件加载到内存中,并为之生生成对应的class对象。 类加载器...

  • JVM - ClassLoader

    1. 概述 类加载器实际定义了类的namespace。 2.类加载方式之当前类加载器和指定类加载器 类的加载只有两...

  • JVM学习:类加载器分类

    一、类加载器概述 JVM支持两种类型的类加载器 。分别为引导类加载器(Bootstrap ClassLoader)...

  • Java 类加载器

    一、概述 上篇文章中概述了类的加载流程,那么类是由什么来加载的呢?毫无疑问就是类加载器,类加载器是Java中很重要...

  • 类加载器的概述

    类加载器是JVM执行类加载机制的前提 ClassLoader的作用: ClassLoader是Java的核心组件,...

  • 类加载及类加载器概述

    声明:该文章内容摘自于网络及《深入理解Java虚拟机》,本人只是进行了内容合并,并非个人文章,只为知识共享,内容有...

  • 要点提炼| 理解JVM之类加载机制

    本篇将了解类加载机制和双亲委派模型这两大知识考点: 概述 类加载全过程 类加载器&双亲委派模型 1.概述 a.JV...

  • 一、类加载器与类的加载过程

    一、内存结构概述 二、类加载器与类的加载过程 1、类加载子系统作用 类加载子系统负责从文件系统或者网络中加载Cla...

网友评论

      本文标题:类加载器的概述

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