贴一个java classloader的小例子
package com.basic;
import junit.framework.TestCase;
public class MyClassLoaderTest extends TestCase {
public MyClassLoaderTest(){}
public void testClass() throws ClassNotFoundException {
Class b = String[].class;
System.out.println(b);
Class c = new String().getClass();
System.out.println(c);
//数组的实际类名编码为:左括号 + 类别代码 + 类名 + 分号
c = Class.forName("[Ljava.lang.String;");
System.out.println(c);
assertNotNull(c);
}
public void testClassLoader(){
ClassLoader cl = ClassLoader.getSystemClassLoader();
try {
Class c = cl.loadClass("com.basic.TestClass");
TestClass tc = (TestClass) c.newInstance();
tc.sayHello();
} catch (Exception e) {
// TODO: handle exception
}
}
}
分享到:
相关推荐
本篇文章将深入探讨Java ClassLoader的内部工作,并通过一个具体的实例来展示如何定制自己的ClassLoader。 首先,我们来看ClassLoader的基本工作流程。当JVM启动时,它会有一个初始的Bootstrap ClassLoader,用于...
### Java ClassLoader与ClassPath详解 #### 一、概述 在Java编程中,类加载机制是十分关键的一个环节。类加载器(`ClassLoader`)负责将编译后的`.class`文件加载到Java虚拟机(JVM)中执行,而类路径(`ClassPath...
Java 类加载器(ClassLoader)是Java虚拟机(JVM)中的一个重要组成部分,它负责加载类的字节码文件,使得程序能够运行。深入理解ClassLoader对于优化应用性能、处理类加载问题以及实现自定义加载策略至关重要。 一...
Java程序中的每个类都由某个ClassLoader实例加载。 - JVM中有三个内置的ClassLoader:Bootstrap ClassLoader、Extension ClassLoader和AppClassLoder。 - Bootstrap ClassLoader加载JDK的核心库,如rt.jar。 - ...
Java 中的 ClassLoader 是一个非常重要的组件,它负责动态加载 class 文件到虚拟机当中,并将其转换成 java.lang.Class 类的一个实例。每个这样的实例用来表示一个 Java 类,因此我们可以根据 Class 的实例可以得到...
Java中的类加载器(ClassLoader)是Java虚拟机(JVM)的一个重要组成部分,它负责将类的.class文件从文件系统或者网络中加载到内存中,并转换为对应的Class对象。类加载器的工作流程主要包括加载、验证、准备、解析...
在Java中,类加载器(ClassLoader)扮演着至关重要的角色,它们负责查找和加载类。本文将深入探讨Java类加载器的层次结构、工作原理以及如何实现动态加载类。 首先,Java类加载器分为系统类加载器和自定义类加载器...
### Java ClassLoader 详解 #### 一、ClassLoader 概述 在 Java 语言中,类加载器(ClassLoader)是 Java 运行时环境的核心组成部分之一,它负责将编译后的 `.class` 文件加载到 JVM 中执行。从 JDK 1.0 开始,...
在Java编程语言中,ClassLoader是核心组件之一,它负责加载类到JVM(Java虚拟机)中。理解ClassLoader的工作机制以及类变量初始化的顺序对于深入理解Java运行时环境至关重要。这篇博文将探讨这两个主题。 首先,让...
一个ClassLoader实例通常对应一个类加载的命名空间,一旦创建,其生命周期就开始了。除非应用程序显式卸载,否则ClassLoader通常不会被垃圾收集。 8. 热部署与类重加载: 在开发环境中,热部署允许开发者修改代码...
同时每个类都会有一个对应的java.lang.Class对象,它包含了该类的类型信息,用于创建该类的实例,获取类中声明的字段和方法,调用静态方法等。 通过自定义ClassLoader,可以实现例如: - 热部署:将加载逻辑放在一...
### Java虚拟机中ClassLoader概述与双亲委托机制详解 #### 一、ClassLoader概念与作用 在Java编程语言中,`ClassLoader`是一个非常重要的组件,它负责加载程序运行所需的类文件到Java虚拟机(JVM)中。`ClassLoader`...
它需要三个参数:代理对象所实现的接口列表、一个`ClassLoader`(用于加载代理类)和一个`InvocationHandler`实例。这个方法会返回一个新的代理对象,该对象在运行时会动态生成一个实现了指定接口的类,这个类会将...
前面已经写过一篇关于java classloader的拙文java classloader原理初探。 时隔几年,再看一遍,觉得有些地方显得太过苍白,于是再来一篇: 完成一个Java类之后,经过javac编译,会生成一个class文件,这个...
Extension ClassLoader的父加载器是Bootstrap ClassLoader,但因Bootstrap ClassLoader非ClassLoader实例,调用getParent()会返回null。 3. System ClassLoader:系统类加载器,也称为应用程序类加载器。它负责加载...
在Java中,每个类都有一个唯一的ClassLoader实例与其关联。当需要加载一个类时,ClassLoader首先检查该类是否已经加载。如果未加载,它会委托给父ClassLoader加载。这种委托加载机制保证了类的唯一性,防止了同一个...
通过本文的学习,我们不仅深入了解了Java类加载器的工作原理,还通过具体的自定义类加载器实例掌握了如何在实践中应用这些理论知识。类加载器在Java开发中扮演着极其重要的角色,尤其是在需要实现动态加载类的应用...
在Java编程语言中,ClassLoader是核心组件之一,它负责加载类到JVM(Java虚拟机)中。自定义ClassLoader允许开发者根据特定需求加载类,比如动态加载或更新类文件,这在某些高级应用场景中非常有用,如插件系统、热...