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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### [`finalize()`的用途](https://lingcoder.gitee.io/onjava8/#/book/06-Housekeeping?id=finalize-%e7%9a%84%e7%94%a8%e9%80%94) 如果你不能將`finalize()`作為通用的清理方法,那么這個方法有什么用呢? 這引入了要記住的第3點: 3. 垃圾回收只與內存有關。 也就是說,使用垃圾回收的唯一原因就是為了回收程序不再使用的內存。所以對于與垃圾回收有關的任何行為來說(尤其是`finalize()`方法),它們也必須同內存及其回收有關。 但這是否意味著如果對象中包括其他對象,`finalize()`方法就應該明確釋放那些對象呢?不是,無論對象是如何創建的,垃圾回收器都會負責釋放對象所占用的所有內存。這就將對`finalize()`的需求限制到一種特殊情況,即通過某種創建對象方式之外的方式為對象分配了存儲空間。不過,你可能會想,Java 中萬物皆對象,這種情況怎么可能發生? 看起來之所以有`finalize()`方法,是因為在分配內存時可能采用了類似 C 語言中的做法,而非 Java 中的通常做法。這種情況主要發生在使用"本地方法"的情況下,本地方法是一種用 Java 語言調用非 Java 語言代碼的形式(關于本地方法的討論,見本書電子版第2版的附錄B)。本地方法目前只支持 C 和 C++,但是它們可以調用其他語言寫的代碼,所以實際上可以調用任何代碼。在非 Java 代碼中,也許會調用 C 的`malloc()`函數系列來分配存儲空間,而且除非調用`free()`函數,不然存儲空間永遠得不到釋放,造成內存泄露。但是,`free()`是 C 和 C++ 中的函數,所以你需要在`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>

                              哎呀哎呀视频在线观看