<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java 中的無效代碼和無法訪問的代碼 > 原文: [https://howtodoinjava.com/puzzles/dead-code-and-unreachable-code-in-java-puzzle/](https://howtodoinjava.com/puzzles/dead-code-and-unreachable-code-in-java-puzzle/) 學習識別 Java 中的無效代碼和無法訪問的代碼。 在您的 [Java 面試](https://howtodoinjava.com/java-interview-questions/)編碼問題中可能會提出這樣的謎題。 ## 1.無效代碼和無法訪問的代碼錯誤 為了理解無效代碼,在這個題目中,我在下面給出了一段代碼。 如果代碼是在 Eclipse IDE 中編譯的,請嘗試確定代碼中的問題。 ```java public class IdentifyProblemsInCode { ?? ?public void howToDoInJava_method1() { ?? ??? ?System.out.println("how to do"); ?? ??? ?return; ?? ??? ?System.out.println("in java"); ?? ?} ?? ?public void howToDoInJava_method2() { ?? ??? ?System.out.println("how to do"); ?? ??? ?if (true) { ?? ??? ??? ?return; ?? ??? ?} ?? ??? ?System.out.println("in java"); ?? ?} ?? ?public void howToDoInJava_method3() { ?? ??? ?System.out.println("how to do"); ?? ??? ?while (true) { ?? ??? ??? ?return; ?? ??? ?} ?? ??? ?System.out.println("in java"); ?? ?} } ``` 我將在下一節中給出上述題目的答案,但我建議您先嘗試一下。 它只是為了好玩。 ## 2.解決方案 – 代碼無效 我們所有人都必須面對與“**無效代碼**”相關的編譯**錯誤**,并且有些人可能已經注意到“**無效代碼警告**”。 以上題目僅與他們有關。 在第一種方法`howToDoInJava_method1()`中,第二條打印語句無法訪問,因此編譯器會出于明顯的原因而報錯。 在第二種方法`howToDoInJava_method2()`中,第二條打印語句也無法訪問,但是奇怪的編譯器只會警告您。 稍后我們將嘗試在這里獲得邏輯。 同樣在第三種方法`howToDoInJava_method3()`中,第二條打印語句不可訪問,因此編譯器將再次發出錯誤消息。 為什么! ## 3.什么是無效代碼 方法 2 中無法訪問的代碼稱為“**無效代碼**”。 這是**純粹是 Eclipse 編譯器報告的錯誤**,如果您使用“`javac`”編譯上述類,則 Java 內置編譯器將僅報錯其他兩種方法(第一和第三)。 > **引用 Java 語言規范** > > “我們的想法是,從包含該語句的構造器,方法,實例初始化器或靜態初始化器的開始,必須有一些可能的執行路徑。 分析考慮了語句的結構。 > > 除了對條件表達式具有恒定值`true`的`while`,`do`和`for`語句進行特殊處理外,在流量分析中不考慮其他表達式的值。 這意味著在確定不可訪問的代碼時不會考慮`'if'`塊。 因為如果您通過`'if'`語句的路徑之一,則可以到達第二個`print`語句。 一切都取決于編譯器,它在編譯期間確定了這一點。 在其他兩個語句中,編譯器確定了不可訪問性,因此它報錯錯誤。 如果我們再次像這樣覆蓋第二種方法。 ```java public void howToDoInJava_method2() { System.out.println("how to do"); if (true) { return; } else { return; } System.out.println("in java"); } ``` 現在,編譯器確定它根本無法到達最后一個打印語句,因此`'javac'`再次報告了第二種方法的不可達代碼。 如果您仍然對 Java 中的**無效代碼**有疑問,請在評論部分寫下。 我將嘗試解決您的查詢。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看