<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://javatutorial.net/weak-references-in-java](https://javatutorial.net/weak-references-in-java) 本文討論 Java 中弱引用的概念。 在開始之前,讓我們先了解一些基礎知識。 Java 中有 4 種引用類型: 1. 強引用 2. 弱引用 3. 軟引用 4. 幻影引用 在這里,我們將討論弱引用。 弱引用與 Java 中的垃圾收集有關。 [垃圾收集](https://javatutorial.net/java-garbage-collection)只是從內存中自動取消分配未引用對象的方法。 弱引用是指不足以使對象保留在內存中的引用。 因此,弱引用可以讓垃圾收集器確定對象的可及性以及所討論的對象是否應保留在內存中。 弱引用需要顯式聲明,因為默認情況下,Java 將引用標記為強引用。 ## 什么是弱可達性? 這意味著一個對象既沒有強引用也沒有軟引用指向它,并且只能通過遍歷弱引用來訪問。 因此,如果該對象被弱引用,則垃圾收集器會將其從內存中刪除,這將清除更多空間并實現更好的內存管理。 垃圾收集器刪除了弱引用之后,將該引用放入引用隊列中,并最終確定以前弱可訪問的對象。 ## 弱引用在哪里使用? * 弱引用主要用于**規范化映射的實現中**。規范化映射是指映射僅包含特定值的一個實例。 * 弱引用還廣泛用于[`WeakHashMap`](https://javatutorial.net/java-weakhashmap-example)類中。 這是`Map`接口的實現,其中每個鍵值都存儲為弱引用。 鍵值對擴展了`WeakReference`類。 因此,垃圾收集器刪除此鍵也會導致實體也被刪除。 代碼示例: 私有靜態類`TryingOut<K, V>`擴展了`WeakReference<Object>`實現`Map.Entry<K, V>` * 失效監聽器問題也使用弱引用。 在這種情況下,可以通過弱引用來處理內存泄漏問題。 ## 實現弱引用: `java.lang.ref.WeakReference`類在處理和創建弱引用時使用。 可以使用弱引用的一種實際的實際場景是在建立數據庫連接時使用,當使用數據庫的應用程序關閉時,垃圾收集器可能會清除該數據庫連接。 Java 中的弱引用的編碼示例如下所示: ```java // Illustrating Weak references in Java import java.lang.ref.WeakReference; class WeakestRef { //coding starts from here public void something() { System.out.println("This is printed out on the screen"); } } public class TryingOutWeak { public static void main(String[] args) { // Strong Reference WeakestRef obj1 = new WeakestRef (); obj1.something(); // Creating Weak Reference to WeakestRef -type object to which 'obj1' is also pointing. WeakReference< WeakestRef > weakref = new WeakReference< WeakestRef >(obj1); //Now, WeakestRef -type object to which 'obj1' was pointing earlier is not available for garbage //collection. But will be only be garbage collected when JVM needs memory. Obj1 = null; // Note: You can also retrieve back the object which has been weakly referenced. It succesfully //calls the method. Obj1 = weakref.get(); Obj1.something(); } } ``` 代碼的輸出: 這被打印在屏幕上 這被打印在屏幕上
                  <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>

                              哎呀哎呀视频在线观看