java反射耗时测试案例解析

 更新时间:2019年10月17日 08:19:53   作者:一首简单的歌  
这篇文章主要介绍了java反射耗时测试案例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

java反射相对与普通的对象调用原理上来说更加耗时,在调用次数较少的情况下可忽略性能损失,但当调用次数非常多时,需要考虑到此问题,即调用次数过多时不宜使用反射,以下举例:

package com.test.reflection;
import java.lang.reflect.Method;
public class ReflectionDemo {
  public static void main(String[] args) throws Exception {
    // 常规方式
    Student student = new Student();
    long startNormal = System.currentTimeMillis();
    for (int i = 0; i < 1000000; i++) {
      student.setName("hello");
    }
    System.out.println("timeNormal=" + (System.currentTimeMillis() - startNormal));
    //反射方式
    Class<?> cla=Class.forName("com.test.reflection.Student");
    long startReflection = System.currentTimeMillis();
    for (int i = 0; i < 1000000; i++) {
      Method method=cla.getDeclaredMethod("setName", String.class);
      method.invoke(cla.newInstance(), "hello");
    }
    System.out.println("timeReflection=" + (System.currentTimeMillis() - startReflection));
  }
}

运行结果:

timeNormal=8
timeReflection=537

这是在简单使用反射调用某个方法的场景下1000000调用的性能差距。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java加密解密工具(适用于JavaSE/JavaEE/Android)

    Java加密解密工具(适用于JavaSE/JavaEE/Android)

    这篇文章主要介绍了Java加密解密工具,适用于JavaSE/JavaEE/Android,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • springboot+vue实现登录功能

    springboot+vue实现登录功能

    这篇文章主要为大家详细介绍了springboot+vue实现登录功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • 详细全面解析Java泛型

    详细全面解析Java泛型

    这篇文章主要介绍了详细全面解析Java泛型,java泛型主要提高了Java 程序的类型安全,通过知道使用泛型定义的变量的类型限制,编译器可以验证类型假设,消除源代码中的许多强制类型转换等多个有点,下面我们进入文章了解更多的详细内容吧
    2022-02-02
  • Java泛型模拟scala实现自定义ArrayList方式

    Java泛型模拟scala实现自定义ArrayList方式

    这篇文章主要介绍了Java泛型模拟scala实现自定义ArrayList方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • JavaWeb开发中alias拦截器的使用方法

    JavaWeb开发中alias拦截器的使用方法

    本文给大家介绍在JavaWeb开发中alias拦截器的使用方法相关知识,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-08-08
  • 详解SpringBoot如何删除引用jar包中的无用bean

    详解SpringBoot如何删除引用jar包中的无用bean

    为了赶速度和直接将之前多模块的maven项目中的部分模块,直接以jar包的形式引入到新项目中了,虽然省去了不少开发时间,导致项目臃肿,启动很慢。本文将用@ComponentScan注解去实现让项目只加载自己需要的bean,需要的可以参考一下
    2022-06-06
  • Spring Boot 优雅停机原理详解

    Spring Boot 优雅停机原理详解

    这篇文章主要为大家介绍了Spring Boot 优雅停机原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Java实战之基于swing的QQ邮件收发功能实现

    Java实战之基于swing的QQ邮件收发功能实现

    这篇文章主要介绍了Java实战之基于swing的QQ邮件收发功能实现,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Bloc事件流是一个阻塞队列结论解析

    Bloc事件流是一个阻塞队列结论解析

    这篇文章主要为大家介绍了Bloc事件流是一个阻塞队列结论解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Nacos框架服务注册实现流程

    Nacos框架服务注册实现流程

    这篇文章主要介绍了SpringCloud服务注册之nacos实现过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08

最新评论