前回のレポートでは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に示しました。
それぞれのオブジェクトはHeaderを持っています。そして、配列はそれぞれのオブジェクトへの参照が格納されています。
このため、各要素へのアクセスも参照をたどる必要があります。また、配列の要素数が多くなってくると、Headerで使用されるヒープもバカになりません。