int i = 10 + 20;
编译器是否真的会处理这段代码,添加10 + 20
,并且字节码与这行代码相同?
int i = 30;
我在哪里可以读到相关内容?
是的,您甚至可以亲自验证。以一个小的 Java 文件为例:
public class Main {
public Main() {
int i = 10 + 20;
}
}
编译它javac Main.java
,然后运行javap -c Main
拆解它:
Compiled from "Main.java"
public class Main extends java.lang.Object{
public Main();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: bipush 30
6: istore_1
7: return
}
在字节码中可以清楚地看到编译器的优化:bipush 30
!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)