我正在阅读有关Jvm体系结构但我无法理解其中的类加载器体系结构.我知道什么是引导类加载器,但是不能理解用户定义的类加载器的工作,它在jvm中的工作原理以及为什么需要它?
程序员是否编写用户定义的类加载器?我一直在研究java但是没有使用或者看不到它何时被使用?请尝试以易于理解的方式解释,以便我能够完全理解它是什么.
什么是用户定义的类加载器?
用户定义的类加载器是扩展的类(由标准Java库或第三方库提供)java.lang.Classloader或子类.
程序员是否编写用户定义的类加载器?
是.
它在jvm中是如何工作的
就像任何其他类加载器一样.更具体地说,要加载一个类,它会将类文件加载到a中byte[],然后调用该类defineClass实现的方法ClassLoader.其他事情可能需要委托给父类加载器.
为什么需要它?
如果您需要类加载器与普通类加载器的行为不同,则需要它.例如,您可能希望转换字节码,或从标准实现无法处理的位置加载它们.或者您可能希望以不同于正常模式的方式实现资源加载.
请尝试以易于理解的方式解释,以便我能够完全理解它是什么.
我建议你阅读这篇关于类加载器的IBM教程:http://www.ibm.com/developerworks/java/tutorials/j-classloader/j-classloader.html 它的设计易于理解,并包含一个有用的实例.自定义类加载器.(这有点旧,但这不重要.)
或者,有很多替代方案......正如谷歌会告诉你的那样.
如果您只是想了解一般的类加载器,请阅读:什么是Java ClassLoader?
| 归档时间: |
|
| 查看次数: |
2434 次 |
| 最近记录: |