首先在C:\Program Files\Java\jdk1.6.0_10\lib下面创建一个String类
查看classpath,发现java_home/lib其实就在classpath下面
(如果你)
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Helper {
public static void main(java.lang.String []args){
new Helper().read("String.class");
}
public void read(java.lang.String f){
ClassLoader cl=this.getClass().getClassLoader();
out(cl);
out("---------");
out(cl.getParent().getParent());
out("---------");
// out(ClassLoader.getBootstrapClassPath());
InputStream in=cl.getResourceAsStream(f);
int len=0;
byte b[]=new byte[1023];
if(in==null){
out("null");
}else
{
out("ok");
}
new String().output();
}
public void out(Object o){
System.out.println(o);
}
}
这样运行的是你自己的String的output方法
String.class可以在当前的classpath,或者在jdk、lib下面!
编译的时候 他就会在classpath中寻找需要加载的包
也就是说 你在classpath下面放java文件,就会被编译!
分享到:
相关推荐
双亲委派模型使得系统类(如java.*开头的类)由Bootstrap ClassLoader加载,而用户自定义类由应用程序类加载器(AppClassLoader)加载。这避免了类的冲突,保持了系统类库的稳定性。但有时我们可能需要打破这种模型...
Java提供了三个基础类加载器:Bootstrap ClassLoader、Extension ClassLoader和AppClassLoader,它们按照层次结构加载类。 1. **自定义ClassLoader**:Java允许我们创建自定义的ClassLoader,这通常用于实现动态...
Bootstrap ClassLoader负责加载JDK的核心库,Extension ClassLoader加载Java的扩展库,而App ClassLoader则加载应用的类路径下的类。用户还可以自定义类加载器,用于加载特定位置或格式的类。 2. **Java类** Java...
在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中。理解ClassLoader的工作原理以及如何定制它,对于深入学习Java的运行机制和进行高级应用开发具有重要意义。本篇文章将...
这种委托加载机制保证了类的唯一性,防止了同一个类被不同ClassLoader加载两次的问题。 ClassLoader还有自定义的概念,允许开发者创建自己的ClassLoader来实现特定的加载逻辑。例如,从网络、数据库或特定文件系统...
在Java编程语言中,ClassLoader是核心组件之一,它负责加载类到JVM(Java虚拟机)中。理解ClassLoader的工作机制以及类变量初始化的顺序对于深入理解Java运行时环境至关重要。这篇博文将探讨这两个主题。 首先,让...
在Java中,Classloader是加载类的关键组件,它负责查找、加载和初始化字节码文件。自定义Classloader允许开发者根据特定需求定制类的加载逻辑,例如加密类文件、隔离不同版本的库或者动态加载代码。本文将深入探讨...
类加载遵循“双亲委托模型”,即当一个类加载器收到加载类的请求时,它会首先委托父类加载器尝试加载,只有当父类加载器无法找到对应的类时,才会自己尝试加载。这样保证了基础类库的一致性,同时也允许Web应用覆盖...
在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。本示例"ClassLoader小例子"将深入探讨这个概念,并通过一个具体的程序来演示其工作原理。下面我们...
- **`findClass()`方法**:重写`ClassLoader`中的`findClass()`方法,该方法用于实际加载类的二进制数据。首先调用`loadClassData()`方法从文件系统读取类文件数据,然后使用`defineClass()`方法将二进制数据转换为`...
在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中执行。这篇测试主要探讨了ClassLoader的工作原理及其在实际应用中的使用。通过阅读给出的博文链接,我们可以深入理解...
默认情况下,Java使用系统ClassLoader(Bootstrap ClassLoader)加载JDK核心库,然后是Extension ClassLoader加载扩展库,最后是App ClassLoader加载应用类路径(ClassPath)下的类。当这些默认ClassLoader无法满足...
这个模型规定,当一个类加载器收到加载类的请求时,它首先会委托父类加载器尝试加载,只有当父类加载器无法加载时,才会自己尝试加载。这样可以保证类的唯一性,避免不同加载器加载相同类导致的问题。 综上所述,类...
在Java编程语言中,ClassLoader是核心组件之一,它负责加载类到JVM(Java虚拟机)中。自定义ClassLoader允许开发者根据特定需求加载类,比如动态加载或更新类文件,这在某些高级应用场景中非常有用,如插件系统、热...
在Java编程语言中,类加载机制(ClassLoader)是理解JVM(Java Virtual Machine)工作原理的关键部分。它负责将.class文件从磁盘加载到内存中,使得Java程序能够执行。这个过程包括加载、验证、准备、解析和初始化五...
Bootstrap ClassLoader加载JRE的核心库,Extension ClassLoader加载Java扩展目录下的类,而AppClassLoader则加载应用的主类路径(ClassPath)上的类。 接下来,我们来讨论“加密解密应用程序”。在Java环境中,为了...
Bootstrap ClassLoader加载JDK核心类库,Extension ClassLoader加载扩展类库,而AppClassLoader则加载应用类路径上的类。 3. 双亲委派模型:Java的类加载机制遵循双亲委派模型,即当一个类加载器接收到加载类的请求...
这三种类加载器遵循双亲委派模型,即当一个类加载器收到加载类的请求时,它首先委托父加载器尝试加载,只有在父加载器无法加载的情况下,才会尝试自己加载。这样可以确保核心类库的稳定性,并防止用户自定义的类覆盖...
类加载器之间的关系遵循“双亲委派模型”:当一个类加载器收到加载类的请求时,它首先会委托父类加载器去尝试加载,只有当父类加载器无法找到对应类时,子加载器才会尝试自己加载。这种模型保证了类的唯一性,防止了...
由于每个类都有唯一的ClassLoader实例加载,所以不同ClassLoader加载的相同类实际上是不同的类,它们之间无法相互转换。 6. 类的卸载: Java虚拟机默认不会主动卸载类,除非JVM退出或者加载该类的ClassLoader被...