今天在看某框架的源码的时候,遇到一个使用URLClassLoader加载Servlet类的问题,当自己在eclipse里面做试验的时候,始终无法把Class加载成功。比如: 究其原因,我们在new URL的时候,路劲应该是除了包以外的路劲,比如上面的E:/xxx/src/main/java/prim ...
分类:
其他好文 时间:
2016-08-16 14:39:07
阅读次数:
134
Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题。 Class.getResource(String path) 同样用法的还有Class.getResource和Class.getResourc ...
分类:
其他好文 时间:
2016-08-14 19:20:48
阅读次数:
185
一、getResourceAsStream方法 getResourceAsStream方法实现如下: 可见getResourceAsStream方法中调用了getResource方法来查找指定的资源。 再看getResource的源代码: 因为Bootstrap是顶层的classloader,所以j ...
分类:
编程语言 时间:
2016-08-14 19:20:09
阅读次数:
200
类加载器负责将.class文件加载到内存中,并为之生成对应的Class对象。其中class文件有可能存在磁盘上,也有可能存在网络上。 当JVM启动时,会形成由三个类加载器组成的初始类加载器层次结构: 类加载机制:全盘负责和父类委托机制 全盘负责:就是当一个classloader加载一个Class的时 ...
分类:
编程语言 时间:
2016-08-14 19:01:30
阅读次数:
188
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
转自:http://www.cnblogs.com/dreamroute/p/3656154.html 开始:看名字都带有ClassLoader,叫做类加载器,事实上是可以理解为动态的加载类,不过,也不是只能加载类,也可以加载其他形式的文件,比如 说.properties属性文件。 区别:其实在两个 ...
分类:
编程语言 时间:
2016-08-12 13:08:23
阅读次数:
189
1)三个类加载器: bootstrap classloader - 引导(也称为原始)类加载器,它负责加载Java的核心类。 extension classloader - 扩展类加载器,它负责加载JRE的扩展目录中JAR的类包。 system classloader - 系统(也称为应用)类加载器 ...
分类:
其他好文 时间:
2016-08-11 12:40:13
阅读次数:
99
类加载器按照层次,从顶层到底层,分为以下三种: (1)启动类加载器(Bootstrap ClassLoader) 这个类加载器负责将存放在JAVA_HOME/lib下的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的类库加载到虚拟机内存中。启动类加载器无法被Java程序 ...
分类:
其他好文 时间:
2016-08-10 19:26:41
阅读次数:
126
前言 最近在看一本书,发现代码里用到了Thread.currentThread().getContextClassLoader(),为什么类加载器还与线程有关系呢,为什么不直接使用ClassLoader.getSystemClassLoader()呢?带着这些疑问又把JVM类加载机制从头到尾学习了一... ...
分类:
其他好文 时间:
2016-08-08 22:30:59
阅读次数:
181
类的加载是由类加载器完成的,类加载器包括: 根加载器( BootStrap )、扩展加载器( Extension )、系统加载器( System )和用户自定义类加载器( java.lang.ClassLoader 的子类)。 从 Java 2 ( JDK 1.2 )开始,类加载过程采取了父亲委托机 ...
分类:
编程语言 时间:
2016-08-08 19:07:12
阅读次数:
128