空闻大师 2018-11-26 02:38 采纳率: 50%
浏览 374

一段简单的代码编译后为什么是这样的?

源代码:

public static void main(String[] args) { 
    int a=1;
    int b=4;
    switch (a){
        case 1:
            while (a<4){

            }
            break;
        case 2:
            while (a<4){

            }
            break;
        default:

    }

}

编译后:

 public static void main(String[] args) {
            int a = 1;
    int b = true;
    switch(a) {
    case 1:
        while(a < 4) {
            ;
        }

        return;
    case 2:
        while(true) {
            if (a < 4) {
                continue;
            }
        }
    }

}

为什么同样的while会编译成不同的代码?目的何在?

  • 写回答

1条回答 默认 最新

  • renwuqiangg 2018-11-26 08:54
    关注

    你所谓的 编译后 是反编译出来的结果,不同的反编译工具,反编译出来是不一样的,有些还会出错。

    评论

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退