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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭伟杰 中级黑马   /  2013-6-28 09:55  /  1502 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学了类加载器都被搞晕了,类加载器到底是干什么是?
怎么理解?
怎么学?

3 个回复

倒序浏览
理论是比较难得,,可以先放放,,后面用到了就会了

给你推荐一篇文章

顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。实际的情况可能更加复杂,比如 Java 字节代码可能是通过工具动态生成的,也可能是通过网络下载的。

  基本上所有的类加载器都是 java.lang.ClassLoader 类的一个实例。下面详细介绍这个 Java 类。

  java.lang.ClassLoader 类介绍

  java.lang.ClassLoader 类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个 Java 类,即 java.lang.Class 类的一个实例。除此之外,ClassLoader 还负责加载 Java 应用所需的资源,如图像文件和配置文件等。不过本文只讨论其加载类的功能。为了完成加载类的这个职责,ClassLoader 提供了一系列的方法
回复 使用道具 举报
我是这样理解的,一个类有各种成分,构造函数,字段,方法等等,都是封装在类里面的,一个类经过类加载期加载后会变成字节码对象。然后你就能使用该类的各种成分。加载时,你把类名传进去,它会去找该类的.Class文件,然后加载成字节码对象。也就是一个.Class文件,你要想使用这个类里面的东东,只有类加载器加载了你才能用,大概就是这样子。
回复 使用道具 举报
类加载器就是用来加载类的一个工具。相对应运行程序时,由它来加载是字节码,加载的过程就是建立Class对象的过程。有三种类加载器常用,它们都用来加载特定位置的类。我们写的代码程序一般都是默认由系统类加载器加载。我们也可以定义自己的类加载器来加载字节码。其实没什么难的,只要知道它的用途,是用来加载字节码用的。怎么用,就是双亲委派机制,说白了就是叫父类加载器去加载,不行就自己来加。自己加就搞一个类加载器(继承ClassLoader类)来加载。如果自己也没有搞,这时就没办法了。虚拟机就要报异常了,字节码加载不了,程序也运行不了了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马