Java为ClassLoader提供了一个URLClassLoader实现类,该类也是系统类加载器和扩展类加载器的父类(此处的父类,就是指类与类之间的继承关系)。URLClassLoader功能比较强大,它既 可以从本地文件系统获取二级制来加载类,也可以从远程主机获取二进制文件来加载类。
java.net
类 URLClassLoader
java.lang.Object
ja...
分类:
Web程序 时间:
2016-05-12 20:51:03
阅读次数:
229
本文介绍类加载器概念,类加载器的分类,类加载器加载类的机制,最后实现一个自定义类加载器。...
分类:
编程语言 时间:
2016-05-12 18:05:48
阅读次数:
243
1.类的加载过程
JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:
1) 装载:查找并加载类的二进制数据;
2)链接:
验证:确保被加载类的正确性;
准备:为类的静态变量分配内存,并将其初始化为默认值;
解析:把类中的符号引用转换为直接引用;
3)初始...
分类:
其他好文 时间:
2016-05-12 12:20:15
阅读次数:
135
文件类加载器,该加载器重载了loadClass方法,逻辑是只读取文件来加载类,不委托给父类加载器进行加载 测试代码 从下面的输出,可以看出: 1、在加载TestClass类时就已经引起其他类的加载了。 2、不要轻易重载loadClass(),双亲制很重要,否则会引起一个类存在多个Class对象。 3 ...
分类:
其他好文 时间:
2016-05-12 01:23:54
阅读次数:
285
泛型
1. 泛型类
:具有一个或多个类型变量的类,称之为泛型类!
class A {
}
2. 在创建泛型类实例时,需要为其类型变量赋值
A a = new A();
* 如果创建实例时,不给类型变量赋值,那么会有一个警告!
3. 泛型方法
:具有一个或多个类型变量的方法,称之为泛型方法!
class A {
public T fun(T...
分类:
其他好文 时间:
2016-05-11 07:23:53
阅读次数:
321
做自己的类加载器 虚拟机的核心是通过类加载器来加载.class文件,然后进行相应的解析执行。那么我们可以自己做类加载器,手动加载需要的.class以进行解析执行,从而扩展虚拟机的功能。 以下内容摘自API文档:应用程序需要实现 ClassLoader 的子类,以扩展 Java 虚拟机动态加载类的方式。网络类加载器子类必须定义方法 findClass 和 loadClassData,以实现从网络加载类...
分类:
编程语言 时间:
2016-05-07 09:36:42
阅读次数:
277
类加载器
加载类的开放性
类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决定如何获取所需的类。
虚拟机规范并没有指明二进制字节流要从一个Class文件获取,或者说...
分类:
其他好文 时间:
2016-05-07 08:58:27
阅读次数:
226
JUnit软件测试技术(工具)在项目中建立专门用户测试的包结构。
在Junit中,通过@Test注解,可以运行一个方法。★ Junit注解说明使用了@Test注解应该满足以下条件:
1) 必须是无参数的非静态方法。
2) 添加@Test注解的类,必须拥有一个无参数的公开构造★ JUnit测试示例演示1、运行完成后,可以在Junit的窗口上看到运行所用的时间和结果信息。
2、被...
分类:
编程语言 时间:
2016-05-06 15:52:26
阅读次数:
183
首先Throws(抛出)几个自己学习过程中一直疑惑的问题:
1、什么是类加载?类加载的时机?
2、什么是类初始化?什么时候进行类初始化?
3、什么时候会为变量分配内存?
4、什么时候会为变量赋默认初值?什么时候会为变量赋人为设定的初值?
5、类加载器是什么?
6、如何编写一个自定义的类加载器?
首先,在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*...
分类:
其他好文 时间:
2016-05-06 15:08:31
阅读次数:
252
类加载器的种类: 1.Bootstrap ClassLoader: 负责加载Java核心类,即$JAVA_HOME/jre/lib/rt.jar,由C++实现 2.Extension ClassLoader: 负责加载Java平台扩展功能的一些jar,包括$JAVA_HOME/jre/lib/*.j ...
分类:
编程语言 时间:
2016-05-04 01:05:46
阅读次数:
190