控制日志输出

背景

在编写代码的时候,我们常常需要加入一些代码来输出日志,从而达到调试的目的。但是,当程序基本编写完成的时候,我们就会纠结于究竟要不要去掉那些用于输出日志的无用代码。

  • 去掉的话,又担心当程序出问题的时候,又要重新加入那些代码来调试,而且删除输出日志的代码也不是一件轻松的事情。
  • 不去掉的话,那些输出日志的代码在程序没出问题的情况下又会显得有点多余。

控制日志输出

我们可以通过使用控制语句来控制日志输出,下面的代码分别使用布尔型常量和布尔型变量来控制日志输出:

Main.java

那么使用布尔型常量和布尔型变量控制日志输出有什么区别呢?
于是,我就去查看Main.java编译生成的字节码(进行反编译处理之后的字节码),如下图:

Main.class

将编译生成的字节码和源码进行对比,你会发现由于DEBUG常量的值为true,也就是说第11行else语句块永远都不会执行,因此Java编译器就将它忽略掉,最终第9-13行的java代码编译生成第16行的字节码。

总结

从上面的分析,我们可以得出以下结论:

  1. Java编译器在将java代码编译成java字节码的时候,会忽略掉那些永远都不可能执行的代码。
  2. 尽量使用静态布尔型常量来控制日志输出。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,310评论 1 44
  • 现在的我多么需要文字 用它记录我此刻的惆怅 表达我内心对爱的渴望 但我的字写得实在丑陋 希望有一天能用漂亮字 记录...
    易新名阅读 137评论 0 0
  • 肉丝说,夹克给她画画时,是她一辈子最性感的时刻。我想,肉丝所谓的性感也许无关裸露,而是心跳的感觉吧。受了多年传统校...
    冲绳的风阅读 287评论 0 0
  • **Reference: **<Engineering A Compiler>. Chapter 2**Keywo...
    酒桶九筒阅读 542评论 0 0