Javaの探求

http://www.02.246.ne.jp/~torutk/javaquest/index.html
TAKAHASHI, Toru
2006年12月3日着手
はじめに
 Javaはプログラミング言語としてだけではなく、仮想マシン上で動く、膨大な標準化されたライブラリ、マルチスレッドといった実行環境を含めたソフトウェア技術の塊です。

 したがって、Java技術の特性を把握して自在に使いこなすためには、単にJavaのプログラミング言語部分を理解するだけでは不十分です。Java仮想マシンが実際の計算機上でどのような仕組みでJavaプログラムを動かしているのかを理解し、広範なライブラリ体系を把握し使いこなし、マルチスレッドなプログラミングを習得し正しく使えるようになることが必要です。

 本資料は、Javaの仕組みを理解し、自在に使いこなし、プログラミング・ライフを充実させるための足がかりとなることを目的としています。

 

構成(予定)

資料の主構成

  1. Hello Worldプログラムを作成し、それがどのような仕組みで動くかについて、Java仮想マシンのレベルまで掘り下げて理解する。この章は、本資料全体の概要をまとめている。
  2. Javaプログラムの実行形式と実行方法について詳しく見ていく。クラスパス、ロード、リンク、クラスローダなどが対象である。
  3. コンパイルについて見ていく。主要なビルドツールについて取り上げる。javac、jar、GNU make、ant、maven、ソースツリー構成についても述べる。
  4. プログラムの起動にスポットを当て、さまざまな起動オプション、コマンドライン、プロパティ、リソースバンドル、セキュリティ・ポリシー、ロギング、デバッグ、監視と計測、Java仮想マシン、スレッドについて見ていく。スプラッシュ画面、環境変数、プレファレンスAPI、Toolkit(ヘッドレス)などについても述べる。
  5. ネイティブについて、標準ライブラリのネイティブ実装、JNIを使ったネイティブ実装、ネイティブからのJVM起動とクラスメソッドの呼び出しにつちえ見ていく。
  6. メモリとガベージコレクション
  7. HotSpotコンパイラ
  8. グラフィックス、OpenGL/Direct3Dアクセラレーション、ピアの実装(Win32/GNOME)
  9. デバッガ、JVMTI、バイトコード・インストゥルメンテーション、プロファイラ

作成するツール

また、本資料を通して、ツールを作成していくことによって、探求してきたことを実践する機会を持つ。プログラミングの最良の習得は実際に作ってみることにある。

本資料で作成するツールは、ランチャーパネルとその上におくユーティリティを予定している。資料の各トピックをそれぞれ反映した小さなユーティリティを複数作っていく。ただし、このユーティリティは今後のJavaプログラム開発において、プログラミングの手本・サンプルとして役立てることを目指す。また、ユーティリティとしても長く有用なものを目指す。

ツール等については、実際の計算機によってインストール、利用ツール、設定などが異なる。計算機固有の記述については、本編とは別に記載していく。

想定読者

Javaという技術がどのように動いているのかを追求し、その知識を活かしてJavaを効率的に使ってプログラムを作りたい人。

完成予定

モチベーションが続く限り本資料はメンテナンスしていく。

インデックス

  1. HelloWorldで理解するJavaの仕組み(2010/07/10 更新)
  2.  
  3.  
  4.  
  5.  
  6. Javaのメモリとガベージコレクション
  7. HotSpotコンパイラ