前回のレポートではJavaOneのキーノートについて言及しました。今回は筆者が聴講したセッションの中から興味深いセッションを紹介していきます。

 取りあげるセッションは以下の通りです。

  • Project Valhalla
  • Going Native: Bringing FFI to the JVM [CON3979]
  • Introduction to Java DIO APIs [CON5394]
  • JavaFX 8: New and Noteworthy [CON3255]

 ただし、Project Valhallaだけはセッションがなかったので、キーノートでの情報と現在入手できる資料などから紹介していきます。

Project Valhalla

 前回示したように、Project Valhallaでは以下に示した機能の導入を目指しています。

  • Value Type
  • Specialized Generics
  • Var Handles

 ここではValue TypeとSpecialized Genericsについて紹介します。

Value Type

 Value Typeはフィールドに対して参照を使用せずにアクセスできる型です。

 たとえば、リスト1に示すPointクラスを考えてみましょう。

リスト1 Pointクラス

class Point {
    final int x;
    final int y;
}

 このPointクラスの配列にした場合を図1に示しました。

図1 Pointクラスの配列
[画像のクリックで拡大表示]
図1 Pointクラスの配列

 それぞれのオブジェクトはHeaderを持っています。そして、配列はそれぞれのオブジェクトへの参照が格納されています。

 このため、各要素へのアクセスも参照をたどる必要があります。また、配列の要素数が多くなってくると、Headerで使用されるヒープもバカになりません。