<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 1. String,StringBuffer,StringBuilder,以及對String不變性的理解 - String、StringBuffer、StringBuilder - 都是 final 類,都不允許被繼承 - String 長度是不可變的,StringBuffer、StringBuilder 長度是可變的 - StringBuffer 是線程安全的,StringBuilder 不是線程安全的,但它們兩個中的所有方法都是相同的,StringBuffer 在 StringBuilder 的方法之上添加了 synchronized 修飾,保證線程安全 - StringBuilder 比 StringBuffer 擁有更好的性能 - 如果一個 String 類型的字符串,在編譯時就可以確定是一個字符串常量,則編譯完成之后,字符串會自動拼接成一個常量。此時 String 的速度比 StringBuffer 和 StringBuilder 的性能好的多 - String 不變性的理解 - String 類是被 final 進行修飾的,不能被繼承 - 在用 + 號鏈接字符串的時候會創建新的字符串 - String s = new String("Hello world"); 可能創建兩個對象也可能創建一個對象。如果靜態區中有 “Hello world” 字符串常量對象的話,則僅僅在堆中創建一個對象。如果靜態區中沒有 “Hello world” 對象,則堆上和靜態區中都需要創建對象。 - 在 Java 中, 通過使用 "+" 符號來串聯字符串的時候,,實際上底層會轉成通過 StringBuilder 實例的 append() 方法來實現。 ## 2. String有重寫Object的hashcode和toString嗎?如果重寫equals不重寫hashcode會出現什么問題? - String 有重寫 Object 的 hashcode 和 toString嗎? - String 重寫了 Object 類的 hashcode 和 toString 方法。 - 當 equals 方法被重寫時,通常有必要重寫 hashCode 方法,以維護 hashCode 方法的常規協定,該協定聲明相對等的兩個對象必須有相同的 hashCode - object1.euqal(object2) 時為 true, object1.hashCode() == object2.hashCode() 為 true - object1.hashCode() == object2.hashCode() 為 false 時,object1.euqal(object2) 必定為 false - object1.hashCode() == object2.hashCode() 為 true時,但 object1.euqal(object2) 不一定定為 true - 重寫 equals 不重寫 hashcode 會出現什么問題 - 在存儲散列集合時(如 Set 類),如果原對象.equals(新對象),但沒有對 hashCode 重寫,即兩個對象擁有不同的 hashCode,則在集合中將會存儲兩個值相同的對象,從而導致混淆。因此在重寫 equals 方法時,必須重寫 hashCode 方法。 ## 3. 如果你定義一個類,包括學號,姓名,分數,如何把這個對象作為key?要重寫equals和hashcode嗎 - 需要重寫 equals 方法和 hashcode,必須保證對象的屬性改變時,其 hashcode 不能改變。 ## 4. 字面量 在編程語言中,字面量(literal)指的是在源代碼中直接表示的一個固定的值。 八進制是用在整數字面量之前添加 “0” 來表示的。 十六進制用在整數字面量之前添加 “0x” 或者 “0X” 來表示的 Java 7 中新增了二進制:用在整數字面量之前添加 “0b” 或者 “0B” 來表示的。 **在數值字面量中使用下劃線** 在 Java7 中,數值字面量,不管是整數還是浮點數都允許在數字之間插入任意多個下劃線。并且不會對數值產生影響,目的是方便閱讀,規則只能在數字之間使用。 ```java public class BinaryIntegralLiteral { public static void main(String[] args) { System.out.println(0b010101); System.out.println(0B010101); System.out.println(0x15A); System.out.println(0X15A); System.out.println(077); System.out.println(5_000); /** * 輸出結果 * 21 * 21 * 346 * 346 * 63 * 5000 */ } } ```
                  <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>

                              哎呀哎呀视频在线观看