use*_*011 3 java literals constant-expression
int i = 10 + 20;
Run Code Online (Sandbox Code Playgroud)
是否真的编译器将处理此代码,添加10 + 20,并且字节代码与此代码行相同?
int i = 30;
Run Code Online (Sandbox Code Playgroud)
我在哪里可以阅读它?
ide*_*ide 11
是的,您甚至可以自己验证它.拿一个小的Java文件,例如:
public class Main {
public Main() {
int i = 10 + 20;
}
}
Run Code Online (Sandbox Code Playgroud)
编译它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
}
Run Code Online (Sandbox Code Playgroud)
显然,在字节码,你可以看到编译器的优化:bipush 30!
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |