A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 罗全涛 于 2012-1-5 01:13 编辑

我们知道8种基本数据类型和void都有其对应的Class实例对象。看JDK时发现在Class方法中public ClassLoader getClassLoader()用来获取该类的类加载器,
文档上说如果此对象表示一个基本类型或 void,则返回 null。那么我想问8中基本类型和void也对应由类,为什么当调用getClassLoader返回其加载器时
会是null?这表示它们是有BootStrap这个加载器加载吗?还是有别的什么意思?ClassLoader类中有这么几句话和这个很像:数组类的 Class 对象不是由
类加载器创建的,而是由 Java 运行时根据需要自动创建,数组类的类加载器由 Class.getClassLoader() 返回,该加载器与其元素类型的类加载器是相同
的;如果该元素类型是基本类型,则该数组类没有类加载器

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

2 个回复

倒序浏览
不懂,同问
回复 使用道具 举报
想通了,每个类,即便是基本数据类型,比如int.class 字节码在被加载时必然是由另外的类加载的,
而java中只有一个bootStrap不需要任何类加载,因此当调用int.class.getClassLoader()的时候,
返回null,表明基本数据类型是由bootStrap加载的。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马