`
cyty01
  • 浏览: 7265 次
社区版块
存档分类
最新评论

学习反射classloader

 
阅读更多

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方法。不过是针对数组的

 

 

分享到:
评论

相关推荐

    Java ClassLoader定制实例

    在实际应用中,我们可以通过反射API来使用自定义ClassLoader加载的类。例如,我们可以创建一个`Class`对象,然后调用`newInstance()`方法来创建该类的实例。 总结来说,Java ClassLoader的定制是一项强大的技术,它...

    ClassLoader 案例

    总的来说,这个案例提供了学习和实践Java ClassLoader、反射和注解的绝佳机会。通过这个案例,你可以了解到如何构建一个能够动态加载和更新类的系统,这对于理解和掌握Java的高级特性是非常有帮助的。在实际项目中,...

    ClassLoader

    ### ClassLoader概述 在Java中,`ClassLoader`是负责加载类到JVM的重要组件之一。它不仅能够确保每个被加载的类都具有唯一的标识符,还能处理...理解类加载器的工作原理对于深入学习Java虚拟机和其底层机制非常重要。

    ClassLoader总结

    反射API(如Class.forName())在查找类时也会涉及到ClassLoader。开发者可以指定ClassLoader来加载特定的类,这在处理动态加载或插件系统时非常有用。 8. 源码分析: 阅读ClassLoader的源码可以帮助我们理解其...

    反射机制和类加载机制学习总结

    ### 反射机制详解 #### 一、反射机制概述 反射是Java的一项核心特性,它使得Java程序在运行时能够动态地获取类的信息,并且能够直接操作这些信息。这种能力在许多其他编程语言中并不常见,例如在Pascal、C或C++中...

    java面试题--反射机制

    通过本文的学习,我们深入了解了Java反射机制的基本概念、原理以及应用。Java反射机制为Java程序提供了一种强大的动态处理能力,使得Java不仅仅局限于静态类型语言的功能限制。掌握Java反射机制对于开发者来说是非常...

    classloader简单例子

    总的来说,"classloader简单例子"为我们提供了一个学习和实践Java类加载机制的平台。通过这个例子,我们可以学习到如何自定义类加载器,如何处理类的加载过程,以及如何在特定场景下利用类加载器实现更复杂的功能。...

    Android 通过反射启动未安装的APK中的Activity

    在Android系统中,反射机制是一种强大的编程技巧,它允许运行时动态访问类、接口、字段和方法,即使这些元素在编译时未知。...通过深入学习和实践,开发者可以掌握这一高级技术,为复杂的应用场景提供解决方案。

    【IT十八掌徐培成】Java基础第25天-04.classLoader-系统资源-不可见类访问.zip

    在Java编程语言中,ClassLoader是...总的来说,理解ClassLoader的工作机制和类的可见性对于深入学习Java和开发复杂的Java应用至关重要。这个课程将帮助开发者更好地掌握这些核心概念,并能够灵活运用到实际项目中去。

    AOP动态代理(反射机制)

    它需要三个参数:一个ClassLoader,表示用来加载代理类的类加载器;一个Interface[],表示代理对象需要实现的接口列表;以及一个InvocationHandler,表示代理对象在调用接口方法时会委托给的处理程序。 2. **...

    一个例子让你了解Java反射机制

    Java反射机制是Java编程语言中的一个重要特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类集中...在实践中学习,你会更好地理解Java反射机制的威力和应用场景。

    JAVA中的反射机制

    通过深入学习和实践,我们可以充分利用Java反射API,实现许多在编译时无法完成的功能。阅读“JAVA反射机制.pdf”和“Java反射机制总结.pdf”这两份文档,将有助于进一步理解这个主题,同时提供具体的示例和实践指导...

    URLClass工程之间反射机制的实现

    在Java编程中,反射机制是一种强大的工具,它允许我们在运行时检查类、接口、字段和方法的...通过这个实例,开发者可以学习到如何增强代码的灵活性和可扩展性,同时也应意识到使用反射可能带来的性能影响和安全风险。

    反射取继承子类.rar

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作对象的内部...通过学习和掌握这些内容,开发者可以更好地理解和驾驭Java平台的复杂性,为编写更加灵活和适应性强的代码打下基础。

    反射一.zip

    "反射一.zip"这个压缩包可能包含了一个关于Java反射机制的学习示例,其中有两个文件:Car.java和Main.java。下面我们将详细探讨Java反射的相关知识点。 1. **类加载器(ClassLoader)**: 在Java中,类是通过类...

    反射和动态代理(reflect and proxy)---含源码

    2. 使用`Proxy.newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)`方法生成代理对象。参数分别代表类加载器、目标对象实现的接口列表以及上面创建的InvocationHandler实例。 3. 通过...

    java注解_反射_字节码_类加载机制.zip

    类加载器(如Bootstrap ClassLoader、Extension ClassLoader、AppClassLoader)负责加载不同类型的类。双亲委派模型是类加载器之间的组织方式,确保类的唯一性。开发者可以通过自定义类加载器实现特定的加载逻辑,如...

Global site tag (gtag.js) - Google Analytics