弃用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的终结器
java终结器 JDK-8165641 (" Deprecate Object.finalize")已打开,以" deprecate Object.finalize() ...
- Java的终结器仍然存在
当我第一次学习Java并从C ++过渡到Java时,我记得我经常被告知,经常读到它不应该像C ++析构函数那样对待Java终结器,也不应该依靠它. 该建议的频率和坚持性对我产生了影响,以至于我无法回忆 ...
- java终结器_Java的终结器仍然存在
java终结器 当我第一次学习Java并从C ++过渡到Java时,我记得我经常被告知,经常读到它不应该像C ++析构函数那样对待Java终结器,也不应该依靠它. 该建议的频率和坚持性对我产生了影响, ...
- android捕获线程异常,android - 终结器引发的未捕获的异常:所有WebView方法必须在同一线程上调用。 (预期的Looper) - 堆栈内存溢出...
我正在使用Admob SDK 18.1.1 并获得错误终结器抛出未捕获的异常 java.lang.RuntimeException: java.lang.Throwable: A WebView me ...
- JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用
System.gc()的理解 在默认情况下,通过System.gc()或者Runtime. getRuntime ( ).gc ()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试 ...
- Java XML解析器
使用Apache Xerces解析XML文档 一.技术概述 在用Java解析XML时候,一般都使用现成XML解析器来完成,自己编码解析是一件很棘手的问题,对程序员要求很高,一般也没有专业厂商或者开源组 ...
- Java虚拟机垃圾收集器初步学习
Java虚拟机-垃圾收集器 1.概述 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现. 这里讨论的收集器基于JDK 1.7 Update 14之后的HotSpot虚拟机 ...
- java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...
Java自定义的类加载器,java自定义加载,在java中类加载器有以 在java中类加载器有以下几种java虚拟机自带的加载器 1)根类加载器(Bootstrap,c++实现)2)扩展类加载器(Ex ...
- Java异常处理终结篇——如何进行Java异常处理设计
[本文转自于Java异常处理终结篇--如何进行Java异常处理设计] 有一句这样话:一个衡量Java设计师水平和开发团队纪律性的好方法就是读读他们应用程序里的异常处理代码. 本文主要讨论开发Java程 ...
最新文章
- Paxos算法与Zookeeper分析
- QT5开发及实例学习之八基本对话框(一)
- less,more,view一个文件时中文可以正常显示,可是VI却显示乱码呢?
- vbs中的WScript.Network[属性与方法]
- 《IS-IS网络设计解决方案》一导读
- 洪峰:泛系、自由与“一、百、万”工程(一)
- css找某个元素的下个子元素,使用CSS获取特定位置的子元素
- (附源码)计算机毕业设计SSM-志愿者管理系统
- 百度通用文字识别离线SDK部署(c#)
- 餐饮加盟行业怎么找加盟商?线上怎么引流?这几招教你线上低成本获客!
- 一键清除苹果锁屏密码_苹果手机锁屏密码突然不正确了?不要慌!也先不要着急刷机!!!尝试一下以下方式!...
- 利用线性回归实现股票预测分析
- 我的2018新年计划
- android入门之broadcast
- 系统servlet、request知识付费(List/Map/Set)小程序开发
- 英语----我们快乐生活的一部分
- c++程序从1加到10(详细讲解版)
- WinZip Mac 7 Pro 序列号
- 付费才能玩 微软为Win 10确立全新商业模式
- DirectX游戏开发之2D文字的实现