1. Class动态加载
JDk加载类的时候不是同时一起加载的,而是遇到一个类的时候才进行加载
static 的语句块只在加载类的时候执行一次
使用-verbose:class 参数可以看到JDK加载类的详细过程
public class TestDynamicLoading {
/**
* @param args
*/
public static void main(String[] args) {
new A();
System.out.println("----------------------");
new B();
new C();
new C();
new D();
new D();
}
}
class A {
}
class B {
}
class C {
public C() {
System.out.println("constructor");
}
static {
System.out.println("cccccccccccccccccccccccccc");
}
}
class D {
{
System.out.println("dddddddddddddddddddddddddddddddd");
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/localhost_young/archive/2009/08/16/4453752.aspx
分享到:
相关推荐
### Java动态加载类详解 Java动态加载类是Java编程中一项强大的特性,它允许程序在运行时决定并加载具体的类,这为实现高度灵活、可扩展的系统提供了基础。本文将深入探讨Java动态加载类的概念、应用场景以及其实现...
### Java动态加载类知识点总结 Java动态加载类的概念,是指在运行时通过反射机制加载类的一种技术。这在Java中是通过`java.lang.Class`类提供的方法来实现的,最常用的方法是`Class.forName(String className)`。...
在Java中,类加载器负责查找并加载类的字节码文件(.class文件)。这些字节码文件通常位于类路径(ClassPath)中定义的位置。Java虚拟机(JVM)有多个内置的类加载器,如Bootstrap ClassLoader、Extension ...
1. 加载类:使用`Class.forName()`加载指定的类。 2. 获取方法:使用`getMethod()`或`getDeclaredMethod()`,传入方法名和参数类型,获取`Method`对象。 3. 创建对象:如果需要,使用`Constructor.newInstance()`...
它们按照层次结构工作,遵循"委托模型",即从顶层的启动类加载器开始尝试加载类,如果找不到则逐级向下委托。 要实现动态加载jar文件,我们需要创建自定义的类加载器。这个类加载器需要继承`java.lang.ClassLoader`...
这篇博客“Java类动态加载(一)——java源文件动态编译为class文件”可能主要探讨了如何在运行时将Java源代码(.java)编译成对应的字节码文件(.class),并将其加载到Java虚拟机(JVM)中。以下是对这个主题的详细解析...
通过Class类的forName()方法,我们能够根据类名加载类,即使该类在运行时并未被加载到JVM(Java虚拟机)中。例如: ```java try { Class<?> clazz = Class.forName("com.example.MyClass"); // 进一步的反射操作....
在Java中,类加载器负责查找并加载类到Java虚拟机中。我们可以通过自定义类加载器来实现热加载。例如,`MemoryClassLoader.java`可能就是一个自定义类加载器的实现,它可以在内存中动态加载或更新类。 **JarinJAR**...
在Java编程语言中,动态加载类机制是一种强大的功能,它允许程序在运行时根据需要加载新的类或资源,而不是在编译时确定所有类。这种技术对于提高软件的灵活性、可扩展性和模块化至关重要,特别是在大型系统和插件式...
在Java编程中,动态编译代码并热加载类是一项重要的技术,它允许程序在运行时修改或添加新的类,而无需重启应用。这种能力对于快速迭代开发、调试和性能优化非常有用。本主题将深入探讨Java中的动态编译与热加载机制...
通过反射,我们可以动态地加载类、创建对象、访问和修改字段、调用方法等。本文将深入探讨Java反射机制,并通过一个具体的示例来演示如何使用反射动态加载实例类。 #### 一、Java反射概述 Java反射API主要由以下类...
在Java中,类加载器(ClassLoader)是负责加载类到JVM中的核心组件。默认情况下,系统类加载器会搜索`CLASSPATH`环境变量或 `-cp`/`-classpath`命令行选项指定的路径下的`.class`文件。但是,我们可以通过自定义类...
当我们谈论“Java实现的面向接口的动态加载驱动的方法”,我们实际上在讨论如何在运行时动态地加载实现了特定接口的类,以便于在不修改原有代码的情况下,插入新的功能或替换旧的实现。 以MySQL数据库驱动为例,...
总结来说,Java动态加载数据库驱动的核心在于利用 `ClassLoader` 在运行时加载特定的数据库驱动类,避免了因为静态加载所有驱动而可能导致的冲突问题,提高了代码的灵活性和适应性。同时,这种方式还允许在运行时...
- 使用`Class.forName(String className)`或`Class.forName(String className, boolean initialize, ClassLoader loader)`方法显式加载类。 - 使用`ClassLoader.loadClass(String name)`方法显式加载类。 其中,`...
### JAVA类加载机制与动态代理 #### 一、类加载机制 ##### 1.1 类加载的时机 类加载机制负责将描述类的数据从`.class`文件加载到内存,并进行必要的校验、转换解析和初始化,使之成为可以被Java虚拟机直接使用的...
Java 动态类加载机制研究及应用是基于 Java 虚拟机(JV M)机制的,旨在实现 Java 应用程序中动态加载类文件,而不影响其他功能模块的正常运行。为了实现这个目标,需要对 Java 类加载器的体系结构、动态类加载机制...
在描述中提到的Java动态加载类的主要目的是为了不改变主程序代码,仅通过修改配置文件就能实现对不同对象的操作和功能的变更。这种方式特别适合于需要频繁更新功能的系统,因为它大大降低了修改程序和重新部署的...