java终结器_弃用Java的终结器
java終結器
JDK-8165641 (“ Deprecate Object.finalize”)已打開,以“ deprecate Object.finalize() ”,因為“ finalizer本質上存在問題,使用finalizer可能會導致性能問題,死鎖,掛起和其他問題行為”,并且因為“終結的時間無法預測,無法保證將調用終結器。” 我最近在Java的Finalizer仍然存在的文章中體驗并寫了使用Object.finalize()一些令人討厭的后果。
在消息RFR 9:8165641:Deprecate Object.finalize中 ,Roger Riggs邀請對與此問題相關的更改進行回顧和評論[150行,其中包括在java.lang.Object.finalize()添加@Deprecated以及許多附加功能當前JDK類的Object.finalize()方法實現上的@SuppressWarnings(“ deprecation”)批注]。
建議為Object.finalize()方法添加Javadoc @deprecated文本,以重述JDK-8165641和Roger Riggs消息中包含的描述性信息。 這包括為“實例擁有非堆資源的類”“適當地實現java.lang.AutoCloseable”的建議,以及“提供一種顯式釋放那些資源的方法”的建議。 描述性信息還指出:“ {@link java.lang.ref.Cleaner }和{@link java.lang.ref.PhantomReference }提供了一種更靈活,更有效的方法來在對象變得不可訪問時釋放資源。” 有關JDK 9引入的java.lang.ref.Cleaner的更多背景信息,請參見JDK-8138696 。 自從不贊成使用方法[ @Deprecated(since="9") ] @Deprecated(since="9") , Object.finalize()的棄用包括增強的@Deprecated注釋,以聲明狀態。
盡管建議的棄用Object.finalize()不會刪除使用Java終結器的功能或減少其任何潛在的負面影響,但它至少會提供關于使用該方法的風險的更加明顯的警告,并且當前已記錄,提供了更好的潛在替代方案。
翻譯自: https://www.javacodegeeks.com/2017/03/deprecating-javas-finalizer.html
java終結器
總結
以上是生活随笔為你收集整理的java终结器_弃用Java的终结器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓手机游戏吧(安卓游戏吧吧)
- 下一篇: 安卓外星人a16(安卓外星人)