Java编译器是否会预先计算文字的总和?
发布时间:2020-12-15 01:59:47 所属栏目:Java 来源:网络整理
导读:int i = 10 + 20; 是否真的编译器将处理此代码,添加10 20,字节代码与此代码行相同? int i = 30; 我在哪里可以阅读它? 解决方法 是的,您甚至可以自己验证它.拿一个小的Java文件,例如: public class Main { public Main() { int i = 10 + 20; }} 用javac Ma
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! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |