今月の2時間で学ぶ Java Hot Topic (2009年4月号) に行ってきた!

去年の8月以来、久しぶりに Java Hot Topic に行ってきた。
これまでも面白そうなテーマはたくさんあったのだが、仕事が忙しかったのと、一時的に仕事場がかなり遠くなって参加できなかった。

今回のテーマはこんな感じ。

HotSpot JVM 入門

控えめに表現してかなりマニアックな内容だった。
でも知らないことばっかりだったので、たのしかった。

  • JVM Java1.0時代
    • ヒープは単一領域
    • Javaオブジェクトはハンドル参照
    • スレッドはグリーンスレッド)(OS的には1スレッド)
  • JVM Java1.1時代(JIT Compiler)
    • Just In Time Compiler
    • コンパイラでネイティブコード生成
    • Javaオブジェクトはハンドル参照
    • スレッドはグリーンスレッド)(OS的には1スレッド)
    • JITコンパイルのオーバーヘッドが大きい
    • JITでできたコードも最適とは言い難い
  • HotSpot JVM
    • 統一されたオブジェクトモデル
    • 単一スタック
    • ネイティブスレッド(マルチスレッドはちゃんとマルチ)
    • インタープリタ
    • 厳密な世代別GC
    • 高速な同期処理
    • 動的最適化
    • 充実したオプション

僕に書けるのは資料に載っていたこれくらいのことで、本当はもっと細かい話があった。
ほんのちょこっとは理解できたと思いたいのだが、文章にできるほどではないので割愛する。
資料が公開されるのを楽しみにする。
こういうJVMの歴史はほとんど知らなかったので面白かった。
僕がJavaをまともに使い始めたときは、すでにJava1.4だったしなー。

あと、本筋の話ではなかったのだが、「_JAVA_OPTIONS="..."」というのをはじめてしった。
この環境変数を設定しておくと、JVMが勝手に拾って設定してくれるらしい。
かなり裏技だ。黒魔術だ。どうしようも無いときには使えそうなので、ちょっと試してみたい。

次世代アプリケーションサーバ GlassFish v3

GlassFish v3 は JavaOne2009 でリリースしようとしていたけど、いろいろあって JavaOne2009 では Early Access のリリースになるとのこと。
GlassFish v3 は JavaEE6 のリファレンス実装だけど、そもそも JavaEE6 ってどうなったんだろう。
最近気にしてなかったからさっぱりわからない。
GlassFish の特徴はこんな感じ。

  • JavaEE6 完全準拠
    • JavaEE6のプロファイルに対応
  • Ajax/Commet対応
  • ハイパフォーマンス
  • サポート(コミュニティ/商用)
  • JRubyを完全サポート
  • OSGiによるモジュール化

今回初めて知ったのは「埋め込みGlassFish」。
GlassFishをインストールせずに、モジュールを起動できるらしい。Jarにまとめて java -jar で Webアプリケーションが動くみたい。
これはちょっと地味かもしれないけど、いいなーと思った。

GlassFishはちょっとしか使ったことないけど、けっこういい感じ。もうちょっと時間を作って触ってみたいところ。


Java Hot Topicはこれまで毎月行われていたけど、これからは不定期開催になるとのことだった。
毎月セミナーを行うのは、多分かなり大変なことなので、これはこれで良いことだと思った。
社内で毎月簡単な勉強会のようなものをやっているけど(別に僕が主催しているわけではない)、それでもけっこう大変だ。ネタがなくなるしw
また開催されるときは参加したい。