菜鸟笔记 -- Chapter 5.4 Dead Code

不知道有没有前辈注意过,当你编写一段“废话式的代码时”会给出一个Dead Code警告,点击警告,那么你所写的废物代码会被编译器消除,那么如果你不理睬这个警告呢?编译后会是什么样的呢?下面我们写点代码,来查看一下编译后的结果,这里使用反编译工具jd-gui.exe。代码如下:

package cn.five.four;

public class Test {
    public static void main(String[] args) {
        int a = 7;
        int b = 9;
        test1();
        test2(a, b);
    }
    //废话代码--条件语句中,已经可以确定条件真假的会被认为是死代码(Dead Code),也叫无效代码
    public static void test1(){
        if(5>6){
            System.out.println("jdk1.7输出废话代码!!");
        }else {
            System.out.println("都不用编译,你自己都知道要输出这段代码!");
        }
    }
    //条件不确定的不是死代码
    public static void test2(int a,int b){
        if(a>b){
            System.out.println("条件语句块中只有一句代码!");
        }else if (a == b) {
            System.out.println("条件语句块中只有两句代码!");
            System.out.println("条件语句块中只有两句代码!");
        }else {
            System.out.println("会输出这句吗?");
        }
    }
}

反编译

package cn.five.four;

import java.io.PrintStream;

public class Test
{
  public static void main(String[] args)
  {
    int a = 7;
    int b = 9;
    test1();
    test2(a, b);
  }

  public static void test1()
  {
    System.out.println("都不用编译,你自己都知道要输出这段代码!");
  }

  public static void test2(int a, int b)
  {
    if (a > b)
    {
      System.out.println("条件语句块中只有一句代码!");
    }
    else if (a == b)
    {
      System.out.println("条件语句块中只有两句代码!");
      System.out.println("条件语句块中只有两句代码!");
    }
    else
    {
      System.out.println("会输出这句吗?");
    }
  }
}

上面我们知道了编译器在编译后会自动将死代码优化为已知的结果,这是编译器的优化。不过聪明如我们的程序员应该不至于写出这样的代码,在这里仅仅是表明编译器也是可以优化我们的代码的。

时间: 2024-11-05 19:35:33

菜鸟笔记 -- Chapter 5.4 Dead Code的相关文章

菜鸟笔记 -- Chapter 3.1 计算机的基础

3.1 计算机的基础知识 每次想写些什么的时候,发现总是避不过计算机这块,在菜鸟笔记 Chapter 1 计算机从0讲起简单介绍一下计算机硬件,以后计划在线程和并发中详细介绍一下计算机的运行原理.这里我们还是先简单介绍一下计算机. 3.1.1 计算机 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机.常见的形式有台式计算机.笔记本计算机.大型计算机等. 计算机的应用已渗透

菜鸟笔记 -- Chapter 3.4 环境变量

3.4 Java环境的搭建 工欲善其事必先利其器.在学习Java语言之前,必须了解并搭建好它所需要的开发环境.要编译和执行Java程序,JDK(Java Developers Kits)是必备的.下面将具体认识下JDK和JRE,并进行介绍下载安装JDK和配置环境变量的方法. 3.4.1 Java的跨平台 Java的跨平台是指:通过Java语言编写的应用程序在不同的系统平台上都可以运行.在这里我们要对平台进行一下解读,在菜鸟笔记 Chapter 1 计算机从0讲起中我们知道了OS的出现是为所有的开

菜鸟笔记 -- Chapter 6.4 面向对象的三大特性

6.4.1  三大特性概述 面向对象的三大特性是Java中一个很重要的基本理念. 封装是面向对象的核心思想.将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的意思.采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易地直接操作此数据结构,只能执行类允许公开的数据.这样就避免了外部操作对内部数据的影响,提高了程序的可维护性. 继承和多态是面向对象开发语言中非常重要的一个环节,如果在程序中使用得当,可以将整个程序的架构变的非常有弹性,同时可以减少代码的冗

菜鸟笔记 -- Chapter 3.5 人生的第一个Java程序Hello World

3.5 第一个Java程序“Hello World” 3.5.1 工具介绍 编写Java程序可以使用很多种工具 l notepad(微软操作系统自带) l Notepad++ l Eclipse l MyEclipse 我们在初始学习阶段先通过Notepad++来学习,这样我们可以更直观的看到程序运行的流程. 3.5.2 HelloWorld 源代码 class HelloWorld{ public static void main(String[] args){ System.out.prin

菜鸟笔记 -- Chapter 3.2 Java简介

3.2 Java简介 Java是一种高级的面向对象的程序设计语言.使用Java语言编写的程序是跨平台的,从PC机到手持电脑都有Java开发的程序和游戏,Java程序可以在任何计算机.操作系统和支持Java的硬件设备上运行. 3.2.1 Java语言的历史 Java语言是Sun公司于1990年开发的,当时Green项目小组的研究人员正在致力于为未来的智能设备开发一种新的编程语言.由于该小组的成员James Gosling 对C++语言在执行过程中的表现非常不满,就把自己封闭在办公室里编写了一种新的

菜鸟笔记 -- Chapter 6 面向对象

在Java语言中经常被提到的两个词汇是类与对象,实质上可以将类看作是对象的载体,它定义了对象所具有的功能.学习Java语言必须要掌握类与对象,这样可以从深层次去理解Java这种面向对象语言的开发理念,使程序员更好.更快地掌握Java编程思想与编程方式,掌握类与对象是学习理清Java语言的基础.            

菜鸟笔记 -- Chapter 6.4.3 多态

6.4.3  多态 多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定.因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性. 简

菜鸟笔记 -- Chapter 09 常见类和接口

Java为我们提供了丰富的jar包支持,这其中很多都是我们日常开发所必须的,了解这些包和类,十分有助于我们的开发,深度了解源代码也有助于我们代码的优化和提高;JDK1.8为我们提供了多于4000个类与接口;我们主要从功能模块和特性来认识这些类和接口;如下: 用于比较的两个接口: Comparable:java.lang.Comparable<T> CompareTo()方法来源于此,Java中所有的比较功能,基本都源于这个接口,根据不同的类,有不同的实现; Comparator:java.ut

《Thinking in C++》读书笔记——Chapter 3: The C in C++ (2)

Chapter3: The C in C++ (2) Bitwise operators (1)The bitwise exclusive or, or xor (^) produces a one in the output bit if one or the other input bit is a one, but not both. (2)Bitwise operators can be combined with the = sign to unite the operation an