Java反射获取实例的速度对比

  介绍

本篇文章给大家分享的是有关Java反射获取实例的速度对比,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

公共静态void main (String [] args) {
  尝试{
  int MAX=100000;
  for (int数=0;数& lt;50;计数+ +){
  System.out.println(“====第“;+数+“次”);
  
  长s1=System.currentTimeMillis ();
  for (int i=0;我& lt;马克思;我+ +){
  人o=(人)forname (“com.qingtai.domin.Person") .newInstance ();
  }
  长e1=System.currentTimeMillis ();
  System.out.println (“1 _duration:“;+ (e1 - s1));
  
  长s2=System.currentTimeMillis ();
  类clazz=forname (“com.qingtai.domin.Person");
  for (int i=0;我& lt;马克思;我+ +){
  人的人=(人)clazz.newInstance ();
  }
  长e2=System.currentTimeMillis ();
  System.out.println (“2 _duration:“;+ (e2 - s2));
  }
  }捕捉(异常e) {
  e.printStackTrace ();
  }
  }

输出:

====第39次1 _duration: 72 2 _duration: 3====第40次1 _duration: 79 2 _duration: 12====第41次1 _duration: 92 2 _duration: 8====第42次1 _duration: 80 2 _duration: 5

地图的价值不存储全路径名,在初始化的时候地图的价值直接存储类对象,在反射过程中速度提升很大。

<强> java反射获取类实例并调用私有方法

我就废话不多说了,大家还是直接看代码吧~

公共类TestReflect{//测试类
  
  公共空间生(){//访问权限最大
  System.out.println(“公共run");
  }
  
  保护无效mProtected(){//同包下才能访问(实验对象)
  System.out.println(“保护run");
  }
  
  私人空间mPrivate(){//只有本类中才能访问(实验对象)
  System.out.println(“私人run");
  }
  }
公共静态void main (String [] args){抛出异常
  Class<及# 63;比;class1=零;//反射获取类实例,用的最多的就是jdbc获取驱动的时候就是用forname (“xxx");//一般采用这种形式
  class1=forname (“com.xxx.TestReflect");//class1=new TestReflect () .getClass ();//class1=TestReflect.class;//类实例化,到这里就可以访问TestReflect类的公共属性的成员方法和成员变量了
  TestReflect tr=(TestReflect) class1.newInstance ();//通过. lang . class类得到一个方法对象//api中java.lang.Class.getDeclaredMethod方法介绍//返回一个方法对象,该对象反映此类对象所表示的类或接口的指定已声明方法。
  方法方法=class1.getDeclaredMethod (“mPrivate");
  方法method1=class1.getDeclaredMethod (“mProtected");//将此对象的访问标志设置为指示的布尔值。//值为真则指示反射的对象在使用时应该取消Java语言访问检查。//值为假则指示反射的对象应该实施Java语言访问检查。
  method.setAccessible(真正的);
  method1.setAccessible(真正的);//调用该方法
  method.invoke (tr);
  method1.invoke (tr);
  }

以上就是Java反射获取实例的速度对比,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

Java反射获取实例的速度对比