1***********************************************
如果在程序运行中要加载新的类,就要新的类加载器
Classloader 回忆录。。。。
//jvm.dll
//jvm 初始化
//bootstrap loader class.path ! C写的! JRE 目录 classes/onlyfun/caterpillar
//extclassloader lib/ext/classes 目录 /onliyfun/catepillar
//appclassloader
//xxx.class
URL u = new URL("file:/d:/");
ClassLoader mycl = new URLClassLoader(new URL[]{u});
Class aaa = mycl.loadClass("User");
如果加载某个东西,默认的是从父类(Bootstraploade )一直 到子类( Appclassloader)搜索
其实就是从系统设置的 一些path开始找,然后找用户自定的path
相当于 class.forname();
2**************************************************
Field f1 = aaa.getDeclaredField("name");
//f1.setAccessible(true);
//牛啊……居然可以无视private属性,直接给属性赋值
Object x = aaa.newInstance();
f1.setInt(x, 111);//如果没有f1.setAccessible(true); 则会报错,如果name是一个private修饰的话
3****************************************************
Class c3 = Integer.class;
//class类型 ,数组长度
Object c3n = Array.newInstance(c3, 5);
for(int n = 0 ; n < 5 ; n++)
{
//对象,Index,对应的值
Array.set(c3n, n, n*n);
}
for(int n = 0 ; n < 5 ; n++)
{
//对象 , index
System.out.println(Array.get(c3n, n));
}
原来反射形式的数组,用Array对象解决。它也有newInstance方法。不过是针对数组的
分享到:
相关推荐
在实际应用中,我们可以通过反射API来使用自定义ClassLoader加载的类。例如,我们可以创建一个`Class`对象,然后调用`newInstance()`方法来创建该类的实例。 总结来说,Java ClassLoader的定制是一项强大的技术,它...
总的来说,这个案例提供了学习和实践Java ClassLoader、反射和注解的绝佳机会。通过这个案例,你可以了解到如何构建一个能够动态加载和更新类的系统,这对于理解和掌握Java的高级特性是非常有帮助的。在实际项目中,...
### ClassLoader概述 在Java中,`ClassLoader`是负责加载类到JVM的重要组件之一。它不仅能够确保每个被加载的类都具有唯一的标识符,还能处理...理解类加载器的工作原理对于深入学习Java虚拟机和其底层机制非常重要。
反射API(如Class.forName())在查找类时也会涉及到ClassLoader。开发者可以指定ClassLoader来加载特定的类,这在处理动态加载或插件系统时非常有用。 8. 源码分析: 阅读ClassLoader的源码可以帮助我们理解其...
### 反射机制详解 #### 一、反射机制概述 反射是Java的一项核心特性,它使得Java程序在运行时能够动态地获取类的信息,并且能够直接操作这些信息。这种能力在许多其他编程语言中并不常见,例如在Pascal、C或C++中...
通过本文的学习,我们深入了解了Java反射机制的基本概念、原理以及应用。Java反射机制为Java程序提供了一种强大的动态处理能力,使得Java不仅仅局限于静态类型语言的功能限制。掌握Java反射机制对于开发者来说是非常...
总的来说,"classloader简单例子"为我们提供了一个学习和实践Java类加载机制的平台。通过这个例子,我们可以学习到如何自定义类加载器,如何处理类的加载过程,以及如何在特定场景下利用类加载器实现更复杂的功能。...
在Android系统中,反射机制是一种强大的编程技巧,它允许运行时动态访问类、接口、字段和方法,即使这些元素在编译时未知。...通过深入学习和实践,开发者可以掌握这一高级技术,为复杂的应用场景提供解决方案。
在Java编程语言中,ClassLoader是...总的来说,理解ClassLoader的工作机制和类的可见性对于深入学习Java和开发复杂的Java应用至关重要。这个课程将帮助开发者更好地掌握这些核心概念,并能够灵活运用到实际项目中去。
它需要三个参数:一个ClassLoader,表示用来加载代理类的类加载器;一个Interface[],表示代理对象需要实现的接口列表;以及一个InvocationHandler,表示代理对象在调用接口方法时会委托给的处理程序。 2. **...
Java反射机制是Java编程语言中的一个重要特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类集中...在实践中学习,你会更好地理解Java反射机制的威力和应用场景。
通过深入学习和实践,我们可以充分利用Java反射API,实现许多在编译时无法完成的功能。阅读“JAVA反射机制.pdf”和“Java反射机制总结.pdf”这两份文档,将有助于进一步理解这个主题,同时提供具体的示例和实践指导...
在Java编程中,反射机制是一种强大的工具,它允许我们在运行时检查类、接口、字段和方法的...通过这个实例,开发者可以学习到如何增强代码的灵活性和可扩展性,同时也应意识到使用反射可能带来的性能影响和安全风险。
在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作对象的内部...通过学习和掌握这些内容,开发者可以更好地理解和驾驭Java平台的复杂性,为编写更加灵活和适应性强的代码打下基础。
"反射一.zip"这个压缩包可能包含了一个关于Java反射机制的学习示例,其中有两个文件:Car.java和Main.java。下面我们将详细探讨Java反射的相关知识点。 1. **类加载器(ClassLoader)**: 在Java中,类是通过类...
2. 使用`Proxy.newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)`方法生成代理对象。参数分别代表类加载器、目标对象实现的接口列表以及上面创建的InvocationHandler实例。 3. 通过...
类加载器(如Bootstrap ClassLoader、Extension ClassLoader、AppClassLoader)负责加载不同类型的类。双亲委派模型是类加载器之间的组织方式,确保类的唯一性。开发者可以通过自定义类加载器实现特定的加载逻辑,如...