Java知识点总结(反射-介绍)

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java知识点总结(反射-介绍)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Java知识点总结(反射-介绍)

@(Java知识点总结)[Java, 反射]

反射

  • 程序在 运行状态中 ,可以动态加载一个只有名称的类 (动态调用类的所有属性和方法)

    Class c = Class.forName("com..test.User");

  • 加载完类之后,在堆内存中,就产生了一个 Class 类型的对象(一个类只有一个 Class 对象)。
  • 这个对象就包含了完整的类的结构信息,通过这个对象我们可以看到类的结构。这个对象就像一面镜子,透过这个镜子看到类 的结构,所以,我们形象的称之为:反射。

反射的常见作用:

  1. 动态加载类、动态获取类的信息(属性、方法、构造器)
  2. 动态构造对象
  3. 动态调用类和对象的任意方法、构造器
  4. 动态调用和处理属性
  5. 获取泛型信息
  6. 处理注解

示例:

 public class Test01 {     // 一个类只对应一个 Class 对象   PRivate static void test1() throws ClassNotFoundException {    String path = "com.gs.Student";    Class clazz1 = Class.forName(path);        Class clazz2 = Class.forName(path);        System.out.println(clazz1.hashCode());    System.out.println(clazz2.hashCode());    /*366712642    366712642*/   }      // 数组类类型   private static void test2() {    Class intClazz =int.class;                  int[] arr01 = new int[10];         int[] arr02 = new int[30];         int[][] arr03 = new int[30][3];         double[] arr04 = new double[10];                   System.out.println(intClazz.hashCode()); //1829164700         System.out.println(arr01.getClass().hashCode()); //2018699554         System.out.println(arr02.getClass().hashCode()); //2018699554         // arr01 == arr02  都是一维同一类型的对象         System.out.println(arr03.getClass().hashCode()); //1311053135         System.out.println(arr04.getClass().hashCode()); //118352462   }      // 获取类的类型   private static void test3()  {    String path = "com.gs.Student";        Class strClazz = path.getClass();  //对象获取类的类型    Class strClazz2 = String.class;  //类获取类的类型        System.out.println(strClazz == strClazz2); //true         }      public static void main(String[] args) {    try {      test1();    } catch (ClassNotFoundException e) {      e.printStackTrace();    }        test2();    test3();   }   }

脚本宝典总结

以上是脚本宝典为你收集整理的Java知识点总结(反射-介绍)全部内容,希望文章能够帮你解决Java知识点总结(反射-介绍)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。