magazine.gif Javaでなぜつくるのか

第1章 Javaとはそもそも何か

  • 全世界で初めて成功した仮想コンピュータの仕様
  • ソフトウエアで仮想コンピュータを実現する
  • コーヒーカップは仕様の証
  • 世界初ではないが、成功例としては世界初
  • ソフトウエアがいろいろなコンピュータで実行可能
  • Java自身がOSとしての機能を定義している
  • 純粋なオブジェクト指向である
  • 拡張可能な仕様の集合体である
  • 企業に必要な機能が搭載されている
  • 多くの企業が支えるオープンな仕様である

COLUMN Javaよもやま話

  • 早足でみるJavaの歴史

第2章すべてのハードウエアを同じに扱う

  • ソフトウエアの移植は長い間の悩みのタネ
  • 越えなくてはいけない二つの壁
  • コンピュータは“そろばん”で考えるとわかりやすい
  • ソフトウエアを人間の言葉で考えてみる
  • マシン語はコンピュータの種類によって違う
  • アセンブラ言語による開発はまったく互換性なし
  • 高水準言語によりソースコード互換が可能に
  • 旧来はコンピュータごとにコンパイルが必要
  • ソースコードでのソフトウエアの流通
  • インタープリタ言語の限界
  • Java仮想マシンというソフトウエア
  • JVMの特徴
  • Javaクラスはバイナリーで配布可能
  • JITコンパイラ/HotSpot技術

COLUMN Javaよもやま話

  • アーキテクチャのいろいろ

第3章 すべてのOSを同じに扱う

  • もうひとつの壁
  • ソフトウエアはOSごとに存在する
  • OSはハードウエアを仲介する
  • OSごとにソースコードは違う:APIの違い
  • 「標準OS」「標準API」という試み
  • 共通ライブラリの試み
  • ソースコード互換だけではまだ問題は解決しない
  • クラス・ライブラリが非互換
  • ヘッダー・ファイルごとにソースコードが必要
  • JVMはOSも含んでいる
  • Javaはすべてがクラス・ファイル
  • クラス・ファイルだけあれば、それを再利用可能
  • 共通に持てない機能は大胆に切り捨て

COLUMN Javaよもやま話

  • 仮想コンピュータの試み

第4章 言語仕様、実行環境ともにオブジェクト指向を追及

  • Javaはオブジェクト指向言語として最大の成功例
  • オブジェクト指向の主要4機能
  • C++の問題①:クラスに属さないメソッド
  • C++の問題②:クラスの再利用がしにくかった
  • C++の問題③:名前の衝突の問題
  • Javaのアプローチ
  • クラスは必ず作るべし
  • すべてのクラスがmainメソッドを持てる
  • パッケージによる名前の管理
  • 例外処理によるエラー処理
  • クラスとファイルの関係が明確
  • 実行ファイルを作らない
  • 実行フレームワーク
  • JVMはオブジェクト指向コンピュータ

COLUMN Javaよもやま話

  • コンポーネントとは

第5章 メモリー管理を自動化する

  • ソフトウエアでメモリーを管理するということ
  • ポインタを使うソフトウエア
  • 配列を使う
  • 構造体の配列のしくみ
  • C言語ポインタは難しい
  • 配列のオーバーラン問題
  • Cプログラムでのメモリー内の動き
  • メモリーリークという問題
  • 領域破壊
  • Javaのメモリー管理の基本:参照
  • インスタンスの生成はどう行われるか
  • Javaではすべてのオブジェクトをヒープに置く
  • Javaは型検査をかならず行う
  • ガベージ・コレクション
  • Javaではオブジェクトを並べた配列は作れない
  • Javaでは配列のオーバーランはない

COLUMN Javaよもやま話

  • 仮想メモリー:机の広さには制限がある

第6章 企業システムに必要な機能を搭載

  • そもそもなぜJavaなのか?
  • ホストからクライアント/サーバーへ
  • 自動配布を実現する
  • Webアプリケーション技術「サーブレット」
  • オブジェクト指向による差分開発
  • セッション管理機能を提供
  • 画面デザインは「JSP」で作成
  • 「JSF」はMVC型のフレームワーク仕様
  • 分散トランザクションを実現する「EJB」
  • Webサービスはシステム連携の業界標準技術
  • 「J2EE」はサーバー技術の集大成
  • JSW(Java Web Start)で自動ダウンロード

第7章 オープンテクノロジーである意味

  • ソフトウエアを共同で生産する
  • オープンソースを補完するオープン仕様
  • 組み込み系Java
  • 企業の業務を支えるJ2EE
  • データベース・アプリケーションを効率良く開発
  • コンポーネントを使ったトランザクション管理
  • 最適なマシン環境を選んで高スループットを実現
  • Javaは独立した小さな仕様の集まり
  • 安心のリファレンス・インプリメンテーション
  • 最低の技術、でも最高の技術

COLUMN Javaよもやま話

  • Javaオンライン・ソフトはなぜ増えないか

第8章 Javaが本当に目指すもの

  • Javaに前向きに取り組むには
  • 開発環境の方向性
  • デスクトップ環境は復権するか?
  • Javaが本当に目指すもの

おわりに
索引
著者プロフィール