前言
呵呵 最近在頭條上面 刷到了這樣的一個文章, 感覺 還是有點意思的, 所以 後來跟了一下 相關的細節
原文鏈接 : 老師,你確定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註釋不會被執行嗎?