其实,双亲委派模型并不复杂。自定义类加载器也不难!随便从网上搜一下就能搜出一大把结果,然后copy一下就能用。但是,如果每次想自定义类加载器就必须搜一遍别人的文章,然后复制,这样显然不行。可是自定义类加载器又不经常用,时间久了容易忘记。相信你经常会记不太清loadClass、findClass、de ...
分类:
编程语言 时间:
2017-04-08 13:33:23
阅读次数:
315
1.1. class类的相等比较 对于class类的对象,只有由相同的类加载器加载,并且类名相同,才是相同的class。 同时,对于类的委托加载机制,可以遵循,也可以不遵循。 定义Hello类。 定义类加载器。 编写测试代码。 运行结果: loadClass:Hello specialLoadCla ...
分类:
编程语言 时间:
2017-04-07 23:08:43
阅读次数:
271
Class.forName得到的class是已经初始化完成的,Classloder.loaderClass得到的class是还没有链接的这是二者之间最大的区别 ...
分类:
其他好文 时间:
2017-04-07 13:36:23
阅读次数:
150
Class.forName返回的Class对象可以决定是否初始化。而ClassLoader.loadClass返回的类型绝对不会初始化,最多只会做连接操作。 Class.forName可以决定由哪个classLoader来请求这个类型。而ClassLoader.loadClass是用当前的class ...
分类:
编程语言 时间:
2017-02-08 17:09:32
阅读次数:
179
这篇文章主要是分析Tomcat中关于热部署和JSP更新替换的原理,在此之前先介绍class的热替换和class的卸载的原理。一 class的热替换ClassLoader中重要的方法 loadClass ClassLoader.loadClass(...) 是ClassLoader的入口点。当一个类没 ...
分类:
其他好文 时间:
2016-11-10 02:53:22
阅读次数:
330
今天在学习Servlet的时候遇到了一个问题:大概是这样java.lang.ClassNotFoundException: HelloServlet at org.apache.catalina.loader.WebappClassLoader.loadClass,google后在 http://s ...
分类:
其他好文 时间:
2016-11-05 22:50:09
阅读次数:
261
Class.forName() 和 ClassLoader.loadClass()的区别? Class.forName() 和 Class.forName().NewInstance()的区别? Class.forName("xx.xx")等同于Class.forName("xx.xx",true, ...
分类:
其他好文 时间:
2016-09-20 22:27:57
阅读次数:
186
Class的装载分了三个阶段,loading,linking和initializing,分别定义在The Java Language Specification的12.2,12.3和12.4。Class.forName(className) 实际上是调用Class.forName(className ...
分类:
其他好文 时间:
2016-08-14 17:42:04
阅读次数:
130
下面是一些复杂对象情况下一些总结: l 当父类继承Serializable接口,所有子类都可以被序列化 l 子类实现了Serializable接口,父类没有,父类中的属性不能序列化(不报错,数据会丢失),但是子类中属性人能正确序列化 l 如果序列化的属性是对象,这个对象也必须实现Serializab ...
分类:
其他好文 时间:
2016-07-19 13:23:26
阅读次数:
273
文件类加载器,该加载器重载了loadClass方法,逻辑是只读取文件来加载类,不委托给父类加载器进行加载 测试代码 从下面的输出,可以看出: 1、在加载TestClass类时就已经引起其他类的加载了。 2、不要轻易重载loadClass(),双亲制很重要,否则会引起一个类存在多个Class对象。 3 ...
分类:
其他好文 时间:
2016-05-12 01:23:54
阅读次数:
285