java创建对象的两种方式效率对比

432 阅读1分钟

分别用反射和lambda创建对象

其中反射是指下面这种方式:

clazz.newInstance();

lambda是指下面这种方式:

Supplier<? extends Document> supplier = TempDoc::new;
supplier.get();

测试结果如下:

create instance by reflect, round:1000, time:9ms create instance by lambda, round:1000, time:12ms

create instance by reflect, round:10000, time:20ms create instance by lambda, round:10000, time:16ms

create instance by reflect, round:100000, time:130ms create instance by lambda, round:100000, time:126ms

create instance by reflect, round:1000000, time:1364ms create instance by lambda, round:1000000, time:602ms

create instance by reflect, round:10000000, time:5645ms create instance by lambda, round:10000000, time:5317ms

create instance by reflect, round:100000000, time:56355ms create instance by lambda, round:100000000, time:53164ms

简单的记录一下,结果表明反射与lambda这两种方式的效率并不会相差很多,在使用lambda的地方可以放心的使用反射。