反射为什么慢

58 阅读1分钟

java的方法是指令的集合

加载方法是把磁盘里的指令读取到内存中.

直接通过类的实例调用方法的过程是这样的

CPU调用高速缓存,高速缓存通过隐射关系找到对应的object,object通过对应的方法的索引找到类信息中的方法调用

那么反射呢

反射无法知道方法的索引,所以会去遍历类信息中的所有方法,期间要通过入参一一比对,最后才能找到对应的方法,然后再去调用