Fork me on GitHub

ClassLoader理解

类加载器是负责加载类的对象。ClassLoader类是一个抽象类。如果给定类的二进制名称[1],那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从系统读取该名称的类文件
二进制名称的含义是类全限定名称 Class and interface names that appear in class file structures are always represented in a fully qualified form known as binary names (JLS §13.1).
参考文献 [1]http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html
任何作为 String 类型参数传递给 ClassLoader 中方法的类名称都必须是一个二进制名称。
类加载器采用委托模型来搜索类和资源。每个ClassLoader实例都有一个相关的父类加载器。需要查找类或资源时ClassLoader实例试图亲自查找类或资源之前,将搜索类和资源的任务委托给其父类加载器。
虚拟机内置的加载器称为bootstrap class loader它本身没有父类加载器,但是可以将它用作ClassLoader实例的父类加载器。


最新评论

    还没有人评论...

当当

友情链接

Powered by Python. Copyright © 2017.

鄂ICP备17010875号. All rights reserved.