きしだのはてな このページをアンテナに追加 RSSフィード

2018-02-21(水) JDK 11で2つメソッドが削除されてHTTP Clientが正式に入る

[][] JDK 11で2つメソッドが削除されてHTTP Clientが正式に入る 22:56  JDK 11で2つメソッドが削除されてHTTP Clientが正式に入るを含むブックマーク Add Star

JDK9でincubatedでJDK10でもincubatedなHTTP Clientが、ようやくJDK11でjava.net.httpパッケージで入るらしい。

JDK HTTP Client - JEP 321 - Update


あと、 1.2からDeplicatedだったrunFinalizersOnExitメソッドが削除される。Runtime.runFinalizersOnExitとSystem.runFinalizersOnExit。

(11) RFR JDK-8198249: Remove deprecated Runtime::runFinalizersOnExit and System::runFinalizersOnExit


Java 9でforRemoval=trueになってますね。

https://docs.oracle.com/javase/jp/9/docs/api/java/lang/Runtime.html#runFinalizersOnExit-boolean-


Javaでクラスからメソッドがなくなるというのは 初めてなのかな。(※)

これは、Java 9でDeprecatedのルールが明確化されて、@Deprecated(forRemoval=true)がついたものは次のメジャーリリースで削除されるようになったことに伴うもの。

Deprecated APIs, Features, and Options

JEP 277: Enhanced Deprecation


この話を聞いたときにはへぇ〜って思ってたのだけど、6ヶ月リリースサイクルになったことを考えると最短で1年でメソッドが削除される可能性があるってことになって、実際去年の9月のJava9でforRemovalがついて今年の9月のJava11で削除されるのだから、結構猶予がない。


内容とタイトルが逆なのは、この順で内容もタイトルも書きたかったのだけど「JDK 11でHTTP Clientが正式に入って2つメソッドが削除される」だとHTTP Clientからメソッドが削除されるように見えるから。


あとついでに、JDK11ではEpsilon GCが入る。なにもしないGC。パフォーマンス計測でGCの影響を考えたくないときなんか便利。サーバーレスにするときにもどうせ処理が終わったらプロセスが終わってメモリが解放されるのだからGC不要って考えると、使えるかも。

JEP 318: Epsilon: An Arbitrarily Low-Overhead Garbage Collector

Javaパフォーマンス最後のフロンティア:ガベージコレクタの削除


※0:17 追記

Java 9でLogManagerのaddPropertyChangeListener/removePropertyChangeListenerが削除されているとのこと。

Java 8の時点で削除するよって書いてあった。

https://docs.oracle.com/javase/jp/8/docs/api/java/util/logging/LogManager.html#addPropertyChangeListener-java.beans.PropertyChangeListener-

トラックバック - http://d.hatena.ne.jp/nowokay/20180221