<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## [垃圾回收器](https://lingcoder.gitee.io/onjava8/#/book/06-Housekeeping?id=%e5%9e%83%e5%9c%be%e5%9b%9e%e6%94%b6%e5%99%a8) 程序員都了解初始化的重要性,但通常會忽略清理的重要性。畢竟,誰會去清理一個**int**呢?但是使用完一個對象就不管它并非總是安全的。Java 中有垃圾回收器回收無用對象占用的內存。但現在考慮一種特殊情況:你創建的對象不是通過**new**來分配內存的,而垃圾回收器只知道如何釋放用**new**創建的對象的內存,所以它不知道如何回收不是**new**分配的內存。為了處理這種情況,Java 允許在類中定義一個名為`finalize()`的方法。 它的工作原理"假定"是這樣的:當垃圾回收器準備回收對象的內存時,首先會調用其`finalize()`方法,并在下一輪的垃圾回收動作發生時,才會真正回收對象占用的內存。所以如果你打算使用`finalize()`,就能在垃圾回收時做一些重要的清理工作。`finalize()`是一個潛在的編程陷阱,因為一些程序員(尤其是 C++ 程序員)會一開始把它誤認為是 C++ 中的析構函數(C++ 在銷毀對象時會調用這個函數)。所以有必要明確區分一下:在 C++ 中,對象總是被銷毀的(在一個 bug-free 的程序中),而在 Java 中,對象并非總是被垃圾回收,或者換句話說: 1. 對象可能不被垃圾回收。 2. 垃圾回收不等同于析構。 這意味著在你不再需要某個對象之前,如果必須執行某些動作,你得自己去做。Java 沒有析構器或類似的概念,所以你必須得自己創建一個普通的方法完成這項清理工作。例如,對象在創建的過程中會將自己繪制到屏幕上。如果不是明確地從屏幕上將其擦除,它可能永遠得不到清理。如果在`finalize()`方法中加入某種擦除功能,那么當垃圾回收發生時,`finalize()`方法被調用(不保證一定會發生),圖像就會被擦除,要是"垃圾回收"沒有發生,圖像則仍會保留下來。 也許你會發現,只要程序沒有瀕臨內存用完的那一刻,對象占用的空間就總也得不到釋放。如果程序執行結束,而垃圾回收器一直沒有釋放你創建的任何對象的內存,則當程序退出時,那些資源會全部交還給操作系統。這個策略是恰當的,因為垃圾回收本身也有開銷,要是不使用它,那就不用支付這部分開銷了。
                  <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>

                              哎呀哎呀视频在线观看