04 單行註釋"那一行"的代碼被執行了

前言

呵呵 最近在頭條上面 刷到了這樣的一個文章, 感覺 還是有點意思的, 所以 後來跟了一下  相關的細節 

老師,你確定Java註釋不會被執行嗎?

原文鏈接 : 老師,你確定Java註釋不會被執行嗎?

呵呵 因爲比較簡單, 這裏 就大體上一筆帶過了 

 

 

測試用例

package com.hx.test05;

/**
 * Test23CommentExecuted
 *
 * @author Jerry.X.He <[email protected]>
 * @version 1.0
 * @date 2020-05-04 19:17
 */
public class Test23CommentExecuted {

  // Test23CommentExecuted
  public static void main(String[] args) {

    String name = "hx";
    // \u000d name = "jerry";
    /**
     * \u000d name = "jerry2";
     */
    System.out.println(name);

  }

}

其輸出結果爲 

呵呵 驚不驚喜 

 

看一下 jdk7 的 javac 是怎麼處理的呢 ? 

邏輯上認爲 "//" 之後的, CR, LF 之前的字符爲 註釋的內容 

 

因此邏輯上來說, 代碼會被轉換爲 

  // Test23CommentExecuted
  public static void main(String[] args) {

    String name = "hx";
    // \u000d 
    name = "jerry";
    /**
     * \u000d name = "jerry2";
     */
    System.out.println(name);

  }

呵呵 這個還是挺有趣的 

 

 

完 

 

 

參考

老師,你確定Java註釋不會被執行嗎?

原文鏈接 : 老師,你確定Java註釋不會被執行嗎?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章