`
comain
  • 浏览: 2789 次
文章分类
社区版块
存档分类
最新评论

Re: 问个classloader的问题

阅读更多

找到了一个解释,期待更深入的。

Class.forName vs ClassLoader.loadClass. There are some subtle differences
between these two APIs. The method call CL.loadClass(C), where CL is our ClassLoader and C is the name of the class to load, queries the ClassLoader directly for the class by name. This in turn relies on ClassLoader delegation to ask the bootstrap ClassLoader to determine if the class has already been loaded. Conversely, the method call Class.forName(C, false, CL) uses the VM’s internal class resolution mechanism to do the actual loading. Among other things, this allows Class.forName to support the loading of arrays of Classes as a type; for example, calling CL.loadClass(“[C;”) will result in failure, where doing the same with Class.forName(“[C;”, false, CL) will succeed.

分享到:
评论

相关推荐

    Java ClassLoader定制实例

    1. 安全性:自定义ClassLoader可能导致安全问题,因为它可以加载任意的类,因此需要确保加载的类是可信的。 2. 类的可见性:不同的ClassLoader加载的类相互之间默认是不可见的,除非使用` ProtectionDomain`进行设置...

    ClassLoader运行机制 自己写的

    1. Bootstrap ClassLoader:这是JVM启动时的第一个ClassLoader,负责加载JDK核心类库(如rt.jar)。 2. Extension ClassLoader:加载JDK扩展目录(如$JAVA_HOME/jre/lib/ext)中的类。 3. System ClassLoader(也...

    ClassLoader

    在Java编程语言中,`ClassLoader`是一个非常重要的组件,它负责加载程序运行所需的类文件到Java虚拟机(JVM)中。`ClassLoader`不仅管理着类的加载过程,而且其设计模式还对Java的安全性和性能有着至关重要的影响。 #...

    ClassLoader的 一些测试

    1. Bootstrap ClassLoader:这是最基础的类加载器,由C++实现,负责加载JDK核心库(rt.jar)。 2. Extension ClassLoader:扩展类加载器,负责加载JRE的扩展目录(jre/lib/ext目录下的jar文件)。 3. AppClassLoade...

    classloader

    3. 整合自定义ClassLoader:了解如何将自定义的ClassLoader集成到Java应用程序中,替换或扩展默认的加载行为。 4. 考虑Java 2版本的兼容性:学习如何修改你的ClassLoader以适应Java 2及以上版本的特性,比如支持...

    深入理解ClassLoader工作机制.docx

    开发者可以根据需求定制ClassLoader,以满足特定的加载需求,如加载动态生成的类或处理版本兼容问题。总的来说,深入理解ClassLoader的内部运作,有助于我们更好地理解和利用Java平台的强大功能。

    Java SE: ClassLoader in depth

    在Java中,有几种不同类型的ClassLoader: - 启动类加载器(Bootstrap ClassLoader):负责加载JAVA_HOME/lib目录下的,或被-Xbootclasspath参数指定路径中的,并且是虚拟机识别的类库到JVM中。 - 扩展类加载器...

    Understanding the Java ClassLoader

    ### Java ClassLoader理解详解 ...自定义ClassLoader不仅能够扩展JVM的功能,还能够在实际项目中解决特定问题,如动态加载远程资源、加密类文件等。希望这篇教程能为你提供足够的背景知识,以便在实践中应用这些技术。

    JVM ClassLoader简析

    这种委托加载机制保证了类的唯一性,防止了同一个类被不同ClassLoader加载两次的问题。 ClassLoader还有自定义的概念,允许开发者创建自己的ClassLoader来实现特定的加载逻辑。例如,从网络、数据库或特定文件系统...

    ClassLoader小例子

    在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。本示例"ClassLoader小例子"将深入探讨这个概念,并通过一个具体的程序来演示其工作原理。下面我们...

    理解Java ClassLoader机制

    在Java中,ClassLoader分为三个主要层次:Bootstrap ClassLoader、Extension ClassLoader和App ClassLoader(也称为System ClassLoader)。Bootstrap ClassLoader是JVM启动时的第一个加载器,负责加载JDK的根目录下`...

    classloader源码

    在Java编程语言中,`ClassLoader`是一个至关重要的组件,它负责加载类到JVM(Java虚拟机)中。深入理解`ClassLoader`的源码对于Java开发者来说是提升技能的重要环节,尤其是在进行模块化、插件化开发或者进行系统...

    java ClassLoader机制及其在OSGi中的应用

    Java提供了三种内置的ClassLoader: 1. BootstrapClassLoader(启动类加载器):它是JVM的基础,由C++实现,不继承自`java.lang.ClassLoader`。BootstrapClassLoader负责加载JVM的核心类库,包括rt.jar、charsets....

    自定义classloader的使用

    在实现自定义Classloader时,要注意性能问题。过度复杂的加载逻辑可能导致性能下降。同时,避免不必要的重复加载,合理利用缓存可以提高效率。 总之,自定义Classloader是Java中一个强大而灵活的工具,它可以满足...

    ClassLoader 详解.doc

    1. Bootstrap ClassLoader:引导类加载器,也称为原始类加载器。它是整个加载过程的起点,负责加载Java的核心类库,如rt.jar,这是Java运行环境的基础。Bootstrap ClassLoader并非继承自java.lang.ClassLoader,而是...

    深入Java虚拟机_ClassLoader

    3. 自定义ClassLoader: 开发者可以继承java.lang.ClassLoader类,创建自己的类加载器,实现特定的类查找和加载逻辑。这常用于动态加载插件、实现模块化系统或加载加密的类文件。 4. 双重检查锁定与类加载: 在多...

    javase源码-classloader-leak-prevention:ClassLoader泄漏预防/保护

    java源码源码类加载器泄漏预防库 如果您想避免可怕的java.lang.OutOfMemoryError: ...模块的问题,请尝试下面的 Servlet 2.5 替代方案。 由于 ,这意味着如果您有其他 Servlet 3.0 依赖项,则此库可

    一个简单的ClassLoader

    在Java编程语言中,`ClassLoader`是一个至关重要的组件,它负责加载类的字节码文件到JVM(Java虚拟机)中,使得程序能够运行。本文将深入探讨一个简单的`ClassLoader`实现,以及与之相关的知识点。 首先,我们来看...

Global site tag (gtag.js) - Google Analytics