控制日志輸出

背景

在編寫代碼的時(shí)候,我們常常需要加入一些代碼來輸出日志,從而達(dá)到調(diào)試的目的。但是,當(dāng)程序基本編寫完成的時(shí)候,我們就會(huì)糾結(jié)于究竟要不要去掉那些用于輸出日志的無用代碼。

  • 去掉的話,又擔(dān)心當(dāng)程序出問題的時(shí)候,又要重新加入那些代碼來調(diào)試,而且刪除輸出日志的代碼也不是一件輕松的事情。
  • 不去掉的話,那些輸出日志的代碼在程序沒出問題的情況下又會(huì)顯得有點(diǎn)多余。

控制日志輸出

我們可以通過使用控制語句來控制日志輸出,下面的代碼分別使用布爾型常量和布爾型變量來控制日志輸出:

Main.java

那么使用布爾型常量和布爾型變量控制日志輸出有什么區(qū)別呢?
于是,我就去查看Main.java編譯生成的字節(jié)碼(進(jìn)行反編譯處理之后的字節(jié)碼),如下圖:

Main.class

將編譯生成的字節(jié)碼和源碼進(jìn)行對(duì)比,你會(huì)發(fā)現(xiàn)由于DEBUG常量的值為true,也就是說第11行else語句塊永遠(yuǎn)都不會(huì)執(zhí)行,因此Java編譯器就將它忽略掉,最終第9-13行的java代碼編譯生成第16行的字節(jié)碼。

總結(jié)

從上面的分析,我們可以得出以下結(jié)論:

  1. Java編譯器在將java代碼編譯成java字節(jié)碼的時(shí)候,會(huì)忽略掉那些永遠(yuǎn)都不可能執(zhí)行的代碼。
  2. 盡量使用靜態(tài)布爾型常量來控制日志輸出。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,626評(píng)論 18 399
  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚_t_閱讀 4,538評(píng)論 1 44
  • 現(xiàn)在的我多么需要文字 用它記錄我此刻的惆悵 表達(dá)我內(nèi)心對(duì)愛的渴望 但我的字寫得實(shí)在丑陋 希望有一天能用漂亮字 記錄...
    易新名閱讀 148評(píng)論 0 0
  • 肉絲說,夾克給她畫畫時(shí),是她一輩子最性感的時(shí)刻。我想,肉絲所謂的性感也許無關(guān)裸露,而是心跳的感覺吧。受了多年傳統(tǒng)校...
    沖繩的風(fēng)閱讀 300評(píng)論 0 0
  • **Reference: **<Engineering A Compiler>. Chapter 2**Keywo...
    酒桶九筒閱讀 563評(píng)論 0 0

友情鏈接更多精彩內(nèi)容