java反射架构设计 Java反射到底慢在哪里?

[更新]
·
·
分类:互联网
2518 阅读

java反射架构设计

Java反射到底慢在哪里?

Java反射到底慢在哪里?

先陈述一下结论:java的反射是慢,但是是相对于直接调用而言,慢也的确慢了一个数量级,不过在有些场景必须使用反射,并且在反射的时候,可以用一些手段进行人工优化
再说一下java反射之所以有一点慢的原因
和python比起来,java是静态语言类型,也就是说在编译期java在编译代码的时候就会进行类型的强检验,java会在编译期进行代码优化,而反射是在运行时发生的,也就是说那些类型检查,代码优化的事情放在了运行时,这个自然要耗费一点时间
2.编译期在运行时很难做一些关于反射的优化,现在的编译期还不是非常智能,知道你用这段反射代码需要做什么事情
3.再说一下,调用实现过程,在反射调用过程中,执行者叫MethodAccessor,我记得这个对象是懒加载的,也就是说有可能第一次反射调用耗时可能会更长一点,并且在调用的时候方法还要对参数数组进行包装,可能涉及到参数类型适配,装包拆包也有消耗,其实说到底,还是不知道具体的参数类型

如何在三至五年之内成为BAT级别的Java架构师?

第一、过硬的技术实力:(Java架构师的学习路线)
1、首先是基础,在成为java架构师之前首先你需要是一个java高级工程师,掌握使用各种框架(spring/springmvc/ibatis),并且对其核心思想、实现原理有一定认知,Java虚拟机原理、调优,类加载机制,Java反射技术,IO,网络,懂得JVM能让你写出性能更好的代码。