黑马程序员技术交流社区

标题: 类加载器的问题 [打印本页]

作者: 郭伟杰    时间: 2013-6-28 09:55
标题: 类加载器的问题
学了类加载器都被搞晕了,类加载器到底是干什么是?
怎么理解?
怎么学?


作者: 万琪    时间: 2013-6-28 11:21
理论是比较难得,,可以先放放,,后面用到了就会了

给你推荐一篇文章

顾名思义,类加载器(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 提供了一系列的方法

作者: 陈雨    时间: 2013-6-28 21:03
我是这样理解的,一个类有各种成分,构造函数,字段,方法等等,都是封装在类里面的,一个类经过类加载期加载后会变成字节码对象。然后你就能使用该类的各种成分。加载时,你把类名传进去,它会去找该类的.Class文件,然后加载成字节码对象。也就是一个.Class文件,你要想使用这个类里面的东东,只有类加载器加载了你才能用,大概就是这样子。
作者: 影响力147753321    时间: 2013-6-29 01:01
类加载器就是用来加载类的一个工具。相对应运行程序时,由它来加载是字节码,加载的过程就是建立Class对象的过程。有三种类加载器常用,它们都用来加载特定位置的类。我们写的代码程序一般都是默认由系统类加载器加载。我们也可以定义自己的类加载器来加载字节码。其实没什么难的,只要知道它的用途,是用来加载字节码用的。怎么用,就是双亲委派机制,说白了就是叫父类加载器去加载,不行就自己来加。自己加就搞一个类加载器(继承ClassLoader类)来加载。如果自己也没有搞,这时就没办法了。虚拟机就要报异常了,字节码加载不了,程序也运行不了了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2