本日は、日本オラクル主催のJava Day Tokyo 2014に参加しました。
午前中は基調講演で米国Oracleのキーパーソンが講演、午後は技術セッションです。
基調講演
今日のセッション数は22で、参加登録者は2000人強とのことです。
Java SE 8が今年の3月にリリースされたので、Java SEについてと組み込み系への取り組み(IoT)について重点が置かれていた印象です。2000年代半ばごろのEnterprise一色とはずいぶん雰囲気が変わってきています。
- 基調講演からピックアップ
Java SE 8日本語ドキュメントの公開
http://docs.oracle.com/javase/jp/8/
まだ英語の部分ありますが順次日本語化していきますとのこと。
Beyond Java 8でProject Sumatraに言及
AMDと共同でJavaVMの実行時にGPUを活用するProject Sumatraについて言及していました。昨年のJavaOne SFでもセッションがありましたが、Java SE 9には間に合うか難しそうかなといったところですが、割とプッシュしているようなので期待します。Stream APIのparallelがGPGPUで動く世界が来るかも。
A-1 Java SE 8
Java SE 8の新機能を一通り流して紹介するセッションでした。
List<String> ls = List.nil();
- Date and Time API
- DoubleAccumulator、DoubleAdder
マルチスレッド下で、値の更新が多いときに威力を発揮
以前はsun.miscパッケージ
- JDKの依存性チェックツール
C-2 HotSpot
PermGen廃止
クラスのメタデータが格納される領域で、バイトコード、internされた文字列、staticフィールドの値が置かれるところですが、不足するとOutOfMemoryErrorになってしまう厄介なものでした。
Java SE 8では、ネイティブメモリを使ってmetaspaceという領域を作ってそこに格納するようになりました。metaspaceは実行中に広げることができます。
ただし、intern文字列はヒープに移されました。
metaspaceはネイティブメモリを使って作りますが、その際直接OSからメモリアロケートするとページ単位(通常4KB?)にメモリが確保されます。metaspaceはクラスローダー単位で領域を取り、小さなクラスローダーが多数ある場合はメモリに無駄が生じます。そこで、バーチャルチャンクで割り当てることにしました。
High Water Mark(HWM)によるmetaspaceサイズの制御をしており、メタスペースサイズがHWMを超えるとFull GCを行います(Full GCによってクラスローダーがGCされるとその管理するmetaspaceが消せるため)。
64bit環境では、ポインタが64bitになると使用メモリが増えるので、metaspaceのうちよく使われる情報だけを管理するCompressed Class Spaceを設け、オブジェクトがmetaspaceのクラス情報を参照するポインタを圧縮しています。
A-3 JavaFX
アプリケーションの配布は、アプレットやWeb Startもいいけどネイティブパッケージお勧め
JavaFX 8の新コントロール
- DatePicker
- TreeTableView
JavaFX 8の新テーマ(新ルック&フィール)
- Modena
JavaFX Scene Builder 2
- WebViewを使ってHTMLコンテンツ表示
Raspberry Piでは、WebView、Mediaのサポートなし
A-4 Lambda
ラムダ式(Stream API)の説明がコード例で紹介。
一部だけ違う似た処理を、ラムダ式でいかに共通化するかという話題(だったかと思う)。
コード中心の説明だったので、後日スライドが公開されたら確認してみよう。
A-5 Ask the Experts
ラムダ式の実装についての質問応答で、Invoke Dynamicの話が長かった。
ラムダ式中の例外についても。
Java EEの話はだんだん質問の意図が不明になってきたのでぐだぐだ感。
JavaOneのセッションを狙ったと思いますが、うーん、
展示
Java Day Tokyoスペシャルのマインドストーム、Raspberry Piが限定販売されました。
書籍は、翔泳社とオライリーが割り引き販売。Java逆引きレシピは大量に平積みされていましたが、買ったばかりなので・・・(割引販売あるなら待てばよかった)。
VxWorks 6.9と展示があって(リアルタイムOSでは有名な製品)、Javaとの関係を聞いたら、Java SE embeddedを載せるとのことでした(デモは残念ながら動かないのでとのこと)。
参加者ブログ等
見つけたJava Day Tokyo 2014参加者のブログなどをリンクします。
togetterまとめ(by @yamadamnさん)
http://togetter.com/li/670503
参加ブログ