今日はJJUG(日本Javaユーザグループ)のナイトセミナーに参加してきました。
事前案内のサイトにあるように
- Javaはどのように動くのか~スライドでわかるJVMの仕組み
- jcmdをさわってみよう
- それでも依存性は残っている ~環境によって起きたり起きなかったりする問題のお話~
という3本立てで、3名ともOracleの方による発表で、とても濃い内容でした(^^)
Java素人な自分がこれらの内容を正しくまとめて伝えるのは難しいため、主に感想中心になりますが書いておこうと思います(^^;弱気すぎ>自分
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Oracleの伊藤智博さんによる発表でした。
gihyo.jpで連載されている「Javaはどのように動くのか~図解でわかるJVMの仕組み」は第1回を読んでいたのですが、既にもう3回になっていたのですね(^^;気づいていなかった…。読まねば。
発表は連載記事のレベル(=私のような初心者向け)だったため、とても勉強になりました。具体的には…
Hotspot、JRockit、その他…
そーいえばNetBeansとか触っててHotspotって文字みたことあるな…と
- メモリ空間の種類は連載を読んでいたのでかろうじてわかりました(^^;
スレッドスタック、Cヒープ、Javaヒープ
- スレッドに色々種類があることを知りませんでした(^^;
アプリのスレッド、GCのスレッド、他にもファイナライザのスレッド…などなど
このスレッドに関しては、質問形式で「言える人いますか~?」ってなって、手があがらず、本日司会を担当されていた櫻庭さんがスラスラと答えているのがとても印象的でした。なんか勝手にシビれてました(^^)かっこいい。
他にもhashCodeやequalsをオーバーライドして同値判定しっかりしないと危ないよね、という具体例とか、メモリリークが起きるとどうなるか、などJavaやるからにはしっかり学ばないと…と思う内容が盛りだくさんでした。
伊藤智博さん発表のスライド
jcmd をさわってみよう
Oracleの羽生田恒永さんによる発表でした。
jcmdって何?というレベルの私ですが、Java 7u4から追加されたものとのことで、割と新しい機能なのかなと。Javaはこうした診断ツールが色々あって面白いです。
自分の手元でも
jcmd
と打ったらプロセスのリストが出て動きました。ので発表聞きながらちょこちょこ動かしてみたり。
jcmd プロセスのID help
と打って、使えるコマンドがみれて…とかなり手軽に使えそうでした。
運用までにこういうツール類を色々学んでおきたい…(-_-;
ただ、機能的にはまだまだな面もあるとのことで今後が期待されるツールのようです。
羽生田恒永さん発表のスライド
それでも依存性は残っている ~環境によって起きたり起きなかったりする問題のお話~
最後はOracleの立野広樹さんによる発表でした。
JavaはWindowsでもLinuxでもMacでもマルチプラットフォームで動くよ!とよく聞きますが、細かく細かくみていくと、OSのファイルシステムによる仕様差異によってプログラムの挙動も変わることがあるよね、という感じのお話でした。
Oracleの社内に問題解析と障害修正を専門に行う部隊があるそうで(世界で400人以上とか)、そこに所属される方とあって、すごい話が濃かったです。
途中から(私にとっては)高度な内容になっていて、置いて行かれてしまった感もありましたが、自分も(はるかに規模が小さいですが)運用システムで起きる障害の調査とか改修もする立場なので、その凄さを色々と感じとりました(^^;すごすぐる
発表を聞いていたら、自分がやってる障害対応とかって割と平和なモノだよなぁ…領域がある程度限られるし、と思ったり。
立野広樹さん発表のスライド
感想
今日のナイトセミナーは初心者でも熟練者でも楽しめる内容だったのではないかなぁ、と思います。
Javaの世界って奥が深すぎて、そして詳しい人達があまりにも凄すぎて、いつまでも初心者を脱せない気がしています(^^;苦笑
自分のようなレベルの人間がJava EEなんぞ触っていいのか…ほんと不安になったり…。
とりあえず頑張ろう。
追記
Togetterにまとめがあったのでリンクしておきます。
http://togetter.com/li/463414
まとめているのは…Oracleエースのyamadamnさんなのですね。という受付してたのが、そうだったとはっ(^^;先日Weblogicのセミナー中にTwitterで無線のこととか教えて頂いたお礼を言えば良かった(>_<)