ちょうど今週は東京に出張で来てたのでJJUGナイトセミナーに参加してきたー。面白かった!
Java is Still Free
会場に着いたらJava is Still Freeの日本語版がスクリーンに映ってた。じゅくちょーすごいなぁ。
はてなブログに投稿しました #はてなブログ
— じゅくちょー Koichi Sakata (@jyukutyo) 2018年10月9日
今後のJavaのサポートやアップデートについてJavaチャンピオンが執筆したドキュメント、Java is Still Freeの日本語訳を公開 - Fight the Futurehttps://t.co/3cXRf3zIS8
by 伊藤 敬さん
JDK 11リリースなので改めて「新しいJDKリリースモデル解説(サマリー&アップデート)」 by 伊藤 敬さん
[お知らせ]
— Takashi Ito (@itakash) 2018年10月9日
本日のJJUGナイトセミナーで講演させていただいた、「JDK 新しいリリースモデル解説 v2.1」のスライドを以下に公開しました!https://t.co/29OtLHzIcI#jjug
公式情報のおさらい!
by 久保田 祐史さん
Java 11 : サポートとVM機能 編 by 久保田 祐史さん
今日の発表資料です: Introduction to Java 11: Support and JVM Features #jjug #java https://t.co/ZRS7hhAgEu
— KUBOTA Yuji (@sugarlife) 2018年10月9日
分かりやすかったー。
by きしだなおきさん
JEPの話と、JEP以外の変更の話とで面白かったー。会場到着が間に合ってよかったね。
Stringの+=に副作用があるバグ
のお話をきしださんがしてて面白そうだったので試してみた。
❯ docker run --rm -ti openjdk:10.0.1-jdk jshell Oct 09, 2018 3:10:52 PM java.util.prefs.FileSystemPreferences$1 run INFO: Created user preferences directory. | Welcome to JShell -- Version 10.0.1 | For an introduction type: /help intro jshell> var s = new String[]{"1", "2", "3"}; s ==> String[3] { "1", "2", "3" } jshell> var i = 0; i ==> 0 jshell> s[i++] += "a"; $3 ==> "2a" jshell> i i ==> 2 jshell> s s ==> String[3] { "2a", "2", "3" }
おー!i
が1
じゃなくて2
になってるし、1a
じゃなくて2a
になってる!バグってる!
詳しくはこちら:
Java9、10でStringの+=に副作用があるバグ - きしだのはてな
2019-05-01以降でHEISEIが使えない問題
これも面白いなーと思った。こういうファイルを作って・・・
import java.time.chrono.JapaneseDate; import java.time.chrono.JapaneseEra; public class Hello { public static void main(String[] args) { System.out.println(JapaneseDate.of(JapaneseEra.HEISEI, 31, 4, 30)); System.out.println(JapaneseDate.of(JapaneseEra.HEISEI, 31, 5, 1)); } }
8u181で実行するとなんともないんだけど
❯ docker run --rm -ti -v $(pwd)/Hello.java:/Hello.java openjdk:8u181-jdk sh -c 'javac Hello.java; java Hello' Japanese Heisei 31-04-30 Japanese Heisei 31-05-01
11で実行すると・・・
❯ docker run --rm -ti -v $(pwd)/Hello.java:/Hello.java openjdk:11-jdk sh -c 'javac Hello.java; java Hello' Japanese Heisei 31-04-30 Exception in thread "main" java.time.DateTimeException: year, month, and day not valid for Era at java.base/java.time.chrono.JapaneseDate.of(JapaneseDate.java:231) at Hello.main(Hello.java:7)
もうその日は平成じゃないよ!って怒られる。元号を使ってる場合は、頭の片隅に入れておいたほうが良さそうかな。
詳しくはこちら:
Javaの新元号対応を試す。そして実用には問題がある - きしだのはてな
来てよかった
色んな人に会えて嬉しかったなー。