萌新求助,关于编译期的问题。

CIearLove8 2018-09-26 11:27:21
public class A
{
static final int a = 10;
static final int b = 10;
static int c = 10;
static int d = 10;
public static void main(String[] args){
int num1 = a * b;
int num2 = c * d;
}
}

将其.class文件反编译后,为什么会变成这样
public class A {

static final int a = 10;
static final int b = 10;
static int c = 10;
static int d = 10;


public static void main(String[] var0) {
boolean var1 = true;
int var2 = c * d;
}

}

不是应该这样嘛?
public static void main (String [] args){

int num1=200;

int num2=c*d;

}

在某博客看到的,自己试了试不一样。
博客链接:https://blog.csdn.net/qq_41907991/article/details/79795382
望大佬指正
...全文
196 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
寸辰 2018-09-26
  • 打赏
  • 举报
回复
main方法中对于未使用变量做了优化,num1变为var1 变量设置为true节省栈空间使用。如果该变量在方法中被执行或使用则不会被优化。

62,626

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧