核心库/java.util.concurrent
ThreadPoolExecutor不应指定对完成的依赖
以前版本的ThreadPoolExecutor具有关闭线程池的finalize方法,但是在此版本中,finalize方法不执行任何操作。除非子类显式调用finalize方法并依赖于正在关闭的执行程序,否则这应该没有可见的效果。
参见JDK-8190324
docs
JEP 335弃用Nashorn JavaScript引擎
弃用Nashorn JavaScript脚本引擎和API,以及jjs工具,以期在以后的发行版中将其删除(JEP 335)。
Nashorn JavaScript Engine实现,API和jjsShell工具已被弃用,并且可能在将来的版本中删除。使用jdk.nashorn.api.scripting和jdk.nashorn.api.tree包中的类和接口的代码将从中获得弃用警告javac。
Nashorn引擎(由javax.scriptAPI或jrunscript工具使用时)以及jjs外壳工具将打印有关弃用的警告消息。要禁用此运行时警告消息,用户可以包括新的Nashorn选项--no-deprecation-warning。这对于依赖于精确输出的兼容性脚本可能很有用(例如,避免警告会破坏其期望的精确输出)。
参见JDK-8202786
热点/编译器
弃用-XX + AggressiveOpts
-XX:+AggressiveOptsJDK 11中不赞成使用VM选项,在以后的版本中将删除该选项。最初,该选项旨在对C2编译器进行实验性优化,以提高特定基准的性能。随着时间的推移,大多数功能已被删除或集成,从而使该选项的行为不明确且容易出错。该标志当前具有的唯一作用是将其设置AutoBoxCacheMax为20000和BiasedLockingStartupDelay500。可以通过从命令行设置其相应标志来实现相同的配置。因此,-XX:+AggressiveOpts在将来的版本中将不再可用。
参见JDK-8199777
热点/运行时
对商业功能的过时支持
的-XX:+UnlockCommercialFeatures和-XX:+LogCommercialFeatures命令行参数已过时,以及如果使用的话就会产生一个警告信息。命令行参数用于控制VM中商业/许可功能的使用和记录。由于不再具有此类功能,因此命令行参数不再有用。
同样,VM.unlock_commercial_features和和VM.check_commercial_featuresjcmd命令也将生成警告消息,但没有其他效果。
参见JDK-8202331
security-libs / org.ietf.jgss
弃用基于流的GSSContext方法
GSSContext由于GSS-API适用于不透明令牌,并且尚未定义有线协议,因此在此版本中已弃用基于流的方法。这包括的重载形式的initSecContext,acceptSecContext,wrap,unwrap,getMIC,和verifyMIC具有一个方法InputStream的参数。这些方法已在RFC 8353中删除。
参见JDK-8072996
工具
JEP 336弃用Pack200工具和API
在(JEP 336)中弃用pack200和unpack200工具以及Pack200 API 。java.util.jar
该pack200API和与之相关的工具pack200以及和unpack200已被弃用,并将在以后的版本中删除。
这些工具仍包含在JDK 11中,但是将不再更新以支持最新的类文件格式。具有未知属性的类文件将直接传递而不进行压缩。
参见JDK-8199871