转载自:http://www.codeceo.com/article/java-classloader.html 一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时 ...
分类:
编程语言 时间:
2016-07-07 00:42:47
阅读次数:
268
我们都知道,jvm执行的代码,都是通过jvm加载系统加入的。加载系统的第一步是通过ClassLoader加载class二进制信息,jvm规范中并没有规定class的来源类型,这就给jvm的实现这块很大的灵活。可以放在数据库里,可以放在网络的其他地方(以前的applet),zip文件等。现在大多数都是... ...
分类:
其他好文 时间:
2016-07-03 09:16:48
阅读次数:
133
类加载的探索首先谈一下何为热部署(hotswap),热部署是在不重启Java虚拟机的前提下,能自动侦测到class文件的变化,更新运行时class的行为。Java类是通过Java虚拟机加载的,某个类的class文件在被classloader加载后,会生成对应的Class对象,之后就可以创建该类的实例。默认..
分类:
编程语言 时间:
2016-07-02 14:38:20
阅读次数:
428
类装载工作由ClassLoader及其子类负责,ClassLoader是一个重要的Java执行时系统组件,它负责在运行时查找和装入Class字节码文件。JVM在运行时会产生三个ClassLoader:根装载器、ExtClassLoader(扩展类装载器)和AppClassLoader(系统类装载器) ...
分类:
其他好文 时间:
2016-07-01 10:14:54
阅读次数:
194
一般的场景中使用Java默认的类加载器即可,但有时为了达到某种目的又不得不实现自己的类加载器,例如为了达到类库的互相隔离,例如为了达到热部署重加载功能。这时就需要自己定义类加载器,每个类加载器加载各自的类库资源,以此达到资源隔离效果。在对资源的加载上可以沿用双亲委派机制,也可以打破双亲委派机制。一、沿用双亲委派机制自定义类加载器很简单,只需继承ClassLoader类并重写findClass方法即可...
分类:
其他好文 时间:
2016-06-30 09:52:27
阅读次数:
166
1. Classloader的作用,概括来说就是将编译后的class装载、加载到机器内存中,为了以后的程序的执行提供前提条件。
2. 一段程序引发的思考:
风中叶老师在他的视频中给了我们一段程序,号称是世界上所有的Java程序员都会犯的错误。
一般不假思索的结论就是,a=1,b=1。给出的原因是:a、b都是静态变量,在构造函数调用的时候已经对a和b都加1了。答案就...
分类:
编程语言 时间:
2016-06-29 13:26:38
阅读次数:
187
java.lang.Class
java.lang.reflect.Field
java.lang.reflect.Method
java.lang.reflect.Constructor//static代码块Class.forName("",boolean,ClassLoader);JVM结构---------------- Ru.ntimeDataArea 1.MethodArea //方法区。共享 2.Heap //存放对象和数组.共享//Dataaccess..
分类:
其他好文 时间:
2016-06-27 00:15:44
阅读次数:
205
今天将tomcat6更换成了tomcat7,报错的内容 严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: ...
分类:
编程语言 时间:
2016-06-26 18:15:42
阅读次数:
404
参考: http://www.cnblogs.com/java-chl/p/5614940.html http://www.studytonight.com/java/component-of-java.php classLoader: loads the class for execution: ...
分类:
编程语言 时间:
2016-06-26 16:49:08
阅读次数:
231
此文参考: http://www.cnblogs.com/liu-5525/p/5614425.html 1. classLoader 如何加载 class ClassLoader 负责将 .class 文件(可能在disk上,可能在网络上) 加载到 RAM 里面, 并为之生成对应的 [java.l ...
分类:
其他好文 时间:
2016-06-26 14:08:53
阅读次数:
148