Java代码注释写的多,会影响到编译效率,但是不会影响到执行效率。
Java代码是先编译成字节码,然后被JVM解释执行的。
我做了个实验
TimeDemo 类
import java.util.ArrayListpublic class TimeDemo {
public static void main(String[] args) {
long start = System.currentTimeMillis()
ArrayList<Integer> list = new ArrayList<Integer>()
for (int i = 0 i <1000000 i++) {
list.add(i)
}
long end = System.currentTimeMillis()
System.out.println("本次执行耗费了"+(end-start)+"毫秒")
}
}
TimeDemo2
import java.util.ArrayListpublic class TimeDemo2 {
public static void main(String[] args) {
long start = System.currentTimeMillis()
ArrayList<Integer> list = new ArrayList<Integer>()
for (int i = 0 i <1000000 i++) {
list.add(i)
}
//用java.io生成了很多行的注释,
//注释
//注释
//注释
//注释
//注释
long end = System.currentTimeMillis()
System.out.println("本次执行耗费了"+(end-start)+"毫秒")
}
}
运行结果
当注释行数是1~1万行的时候. 能较快的编译
当注释行数达到1百万的时候,编译稍微慢一点
当注释行数达到1千万行的时候, CPU占用100%,卡了进1分钟也没有编译完成,只好强行关闭
结论:
简单明了的注释有助于程序猿对代码的读写
只有当注释行数极大的时候,才会严重的影响编译速度。 但不会影响执行速度
先来说结论吧:你说的这句话是成立的。原因:注解本质上通过反射来实现的,我们都知道,反射是一种程序的自省机制,其实反射是破坏封装的一种方式,反射的效率很低的,对程序本身访问会造成很多的额外开销。比如你采用Spring注解,@resource标识在一个类上面,那么程序会通过反射一遍遍的调用,首先通过class得到类对象,然后调取其中的getAnnotations()方法遍历类上的注解,一遍扫描和寻找注解,这其中就会有减慢效率,这不过是一种语法糖。其实通过xml来配置更好,不过不够方便,注解的最终意义也就是方便程序员而已。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)