java只有在需要的时候才会将类加载进来,而类的加载就是所谓的类加载器来完成的
通常情况下,程序启动之后,会用到三个类加载器:BootstrapLoader,ExtClassLoader,
AppClassLoader.这三者的作用相同,都是加载类到虚拟机中,但是分工不同:
1.BootstrapLoader负责搜索环境变量sun.boot.calss.path指定目录,也就是JRE所在
目录下的classes目录或者lib目录下的jar文件,并且将指定的类加载到虚拟机
2.ExtClassLoader负责搜索环境变量java.ext.dirs指定目录,也就是JRE所在目录的
lib/ext目录下的classes目录或者jar文件,并将指定的类加载到虚拟机
3AppClassLoader则搜索环境变量java.class.path指定的目录,也就是我们在环境变量中
配置的Class_Path目录的类或者jar文件,并且将指定的类加载到虚拟机
当虚拟机启动的时候,将会载入BootstrapLoader,这是一个由C++编写的类,然后它会将
ExtClassLoader加载进来,并且将ExtClassLoader的父类加载器设为它自己,然后
BootstrapLoader将AppClassLoader加载进来,并且将AppClassLoader的父类加载器设
为ExtClassLoader
(注意:除了BootstrapLoader外,其他的加载器的父类加载器和负责将加载器加载进来
的加载器之间,没有必然的联系,例如:ExtClassLoader和AppClassLoader都是由
BootstrapLoader加载的,但是AppClassLoader的父类加载器是ExtClassLoader,而不是
BootstrapLoader)
在java的类加载器中,存在一种委托关系:当类加载器需要加载一个类的时候,会首先
委托它的父类加载器从其搜索路径中搜索相关类,如果找到,则加载父类加载器所找到
的类,否则,才从自身的搜索路径中寻找相关的类,如果还是找不到,则抛出一个
NoClassDefFoundError异常,在这里的类加载器的委托时递归的,它将一层层的往上委
托,直到BootstrapLoader
分享到:
相关推荐
在Java虚拟机(JVM)中,类加载器(ClassLoader)是至关重要的组成部分,它负责查找和加载类的字节码文件。理解ClassLoader的工作机制对于深入掌握Java应用程序的运行至关重要。这里我们将详细讨论ClassLoader的运行...
《深入理解ClassLoader工作机制》 Java虚拟机(JVM)中的ClassLoader是负责加载类到内存中的核心组件。它不仅承担着将字节码转换为可执行对象的重任,还参与了类生命周期的各个阶段,包括加载、验证、准备、解析、...
在Java中,Classloader是加载类的关键组件,它负责查找、加载和初始化字节码文件。自定义Classloader允许开发者根据特定需求定制类的加载逻辑,例如加密类文件、隔离不同版本的库或者动态加载代码。本文将深入探讨...
在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。本示例"ClassLoader小例子"将深入探讨这个概念,并通过一个具体的程序来演示其工作原理。下面我们...
Java ClassLoader是Java运行时系统的关键但经常被忽视的组件,负责在运行时查找和加载类文件。通过创建自定义ClassLoader,你可以定制JVM,使类文件的引入方式完全重新定义,这提供了很多实用和有趣的可能。这篇教程...
Java ClassLoader机制是Java虚拟机(JVM)中一个至关重要的组成部分,它的主要任务是将类的.class文件加载到JVM中,使得程序能够运行。ClassLoader不仅负责类的加载,还涉及类的验证、初始化等一系列过程。理解...
在Java编程语言中,`ClassLoader`是一个至关重要的组件,它负责加载类到JVM(Java虚拟机)中。本文将深入探讨`ClassLoader`的工作原理、加密解密应用程序以及如何防止类被反编译。 首先,让我们理解`ClassLoader`的...
在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中。理解ClassLoader的工作原理以及如何定制它,对于深入学习Java的运行机制和进行高级应用开发具有重要意义。本篇文章将...
在Java世界中,类加载器(ClassLoader)是关键的组件之一,它负责将类的字节码文件(.class)从文件系统或网络中加载到Java虚拟机(JVM)中,使得程序能够运行。本篇文章将深入探讨ClassLoader的关系网络以及如何...
《ClassLoader详解》 Java应用程序的运行离不开类的加载,而ClassLoader正是这个过程的关键角色。它负责将类的字节码加载到Java虚拟机(JVM)中并转换为可执行的Java对象。深入理解ClassLoader的工作原理对于优化...
Java ClassLoader机制是Java运行时环境中的核心组件之一,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。理解ClassLoader的工作原理对于优化应用性能、处理类加载问题以及实现自定义加载器至关重要。 首先...
在Java编程语言中,ClassLoader是核心组件之一,它负责加载类到JVM(Java虚拟机)中执行。本文将深入探讨ClassLoader的工作原理和类加载机制,帮助开发者理解这个至关重要的概念。 1. 类加载机制概述 Java的类加载...
在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中执行。这篇测试主要探讨了ClassLoader的工作原理及其在实际应用中的使用。通过阅读给出的博文链接,我们可以深入理解...
### Java ClassLoader与ClassPath详解 #### 一、概述 在Java编程中,类加载机制是十分关键的一个环节。类加载器(`ClassLoader`)负责将编译后的`.class`文件加载到Java虚拟机(JVM)中执行,而类路径(`ClassPath...
Java的类加载器(ClassLoader)体系结构是JVM(Java虚拟机)中至关重要的一部分,它负责将类的字节码转换为运行时的类实例。本文将深入探讨启动类加载器、扩展类加载器、系统类加载器以及用户自定义类加载器,同时还...
破解java加密的ClassLoader.java,在classloader植入破解代码