Java 本 目次

--------------------------------
第1部 プログラミング言語Java (30pages/chapter)
--------------------------------
1章 Java概論 (小柳)
2章 Javaの基礎 (益満)
3章 オブジェクトの基礎 (益満)
4章 継承 (野口)
5章 インターフェイス (野口) − 実装の隠蔽、ポリフォノニズム
6章 例外と例外処理 (立掘)
7章 マルチスレッド (立掘)
8章 内部クラス (早田)
9章 Generics (早田) − Generics、Wrapper クラス
--------------------------------
第2部 Javaスタンダードライブラリ (40pages/chapter)
--------------------------------
10章 文字列処理(小柳)
11章 入出力(益満)
12章 コレクション(早田)
13章 ネットワーク(益満)
14章 グラフィカルユーザインタフェース(小柳)
15章 その他の便利なクラス(小柳)

------------------------
第3部 プラクティカルJava (20pages/chapter)
------------------------
16章 リフレクション (早田)
17章 ログと警告 (AssertとLoggingについての章です) (益満)
18章 XML (小柳)
19章 セキュリティ (立掘)
20章 Webサービス (立掘)

付録 A J2SEコマンド使用法(&オプション)一覧 (小柳)
付録 B Javadocの使い方 (益満)

キーワード一覧

目次:詳細版(要更新)

第1章 
 1.1 Javaの背景
        組み込み機器用として誕生
        アプレットでブレーク
        サーバサイドで定着
 1.2 バーチャルマシン
        バイトコード
        互換性を提供するための仕組み
 1.3 Javaの代表的な使われ方
        アプリケーション
        アプレット
        サーブレット
 1.4 クラスとオブジェクト
        クラス
        オブジェクト
        インスタンス
        インスタンス化
 1.5 オブジェクト指向
        カプセル化
        継承
        ポリモーフィズム
        (オブジェクトの型システム)
 1.6 Java言語のそのほかの特徴
        ガーベージコレクション
        例外処理
        マルチスレッド
        Remote Method Invocation (RMI)
        Generics
 1.7 Javaクラスライブラリ
        java.lang
        java.util
        java.io
        java.net
        java.applet
        javax.servlet
        ...
 1.8 初めてのJavaプログラム
        class Test {
          public static void main(String[] args) {
            for (int i = 0; i < args.length; i++)
              System.out.print(i == 0 ? args[i] : " " + args[i]);
            System.out.println();
          }
        }
 1.9 コンパイルと実行
        javac Test.java
        java Test Hello, world.
        簡単なコンパイルオプションの表
 1.10 復習と練習問題

2. 制御ステートメント
 2.1 コメント
 2.2 変数
 2.3 演算子と式
 2.4 型変換
 2.5 配列
 2.6 条件処理  if, else, else if / switch
 2.7 反復処理  for, while, do while
 2.8 ブロック  {}
 2.9 復習と練習問題

3. クラスとメソッド
 3.1 クラスとは
 3.2 オブジェクトの考え方
 3.3 メソッドとフィールド
 3.4 オブジェクトの作成   (new 演算子)
         既存のクラス(String)のオブジェクトの作成
 3.5 クラスの作成
         MyClassの作成
 3.6 コンストラクタ 
 3.7 スコープ  (public, protected, private )
 3.8 this
 3.9 静的メソッドと静的フィールド
 3.10 オーバーロード
 3.11 オブジェクトの配列
 3.12 復習と練習問題

4章 継承
 4.1 サブクラスの作り方
 4.2 サブクラスの使い方
 4.3 継承スコープ
        public, protected, private
        static, final
 4.4 Override
        同じ名前、同じ引数のMethodが継承クラスにある場合
 4.5 super
        super()の使い方
        implicit super
        コンストラクタの挙動
 4.6 Object Class
 4.7 復習と練習問題

5章 抽象クラスとインターフェイス
 5.1 抽象クラス
        ・抽象クラス abstract
        ・抽象クラスのインスタンスはつくれない
 5.2 インターフェイスの作り方と使い方
        ・全部抽象だとインターフェイス
        ・インターフェイスの作り方
        ・インターフェイスの使い方
 5.4 抽象クラスとインターフェイスの違い
        ・抽象クラスから派生させると便利な例 (ポリモフィズム以外)
        ・複数のInterfaceを実装する例
 5.5 ポリモフィズム
        ・SuperClass obj[] = {new SubClass1(), new SubClass2(), new SubClass3()};
        ・SuperClass obj = new SubClass(); obj.overridMethod();
        ・SubClass obj = new SuperClass(); ???
        ・複数のInterfaceを実装したクラスによるVisitor Paternの例;
 5.6 復習と練習問題

6章 例外と例外処理
 6.1 例外処理とは
        - 例外いっぱい
        - 関心事の分離
 6.2 try - catchブロック
        - try構文
        - catchブロックの並び
        - finallyブロックの動作
 6.3 throws宣言
        - メソッド宣言
        - オーバーライド
 6.4 Throwableクラス・ファミリ
        - クラス階層
        - 実行時例外
 6.5 例外のスロー
        - throwステートメント
        - 例外のラッピング
 6.6 独自例外クラスの定義
        - アプリケーション特有の例外定義
        - 実装パターン
 6.7 復習と練習問題

7章 マルチスレッド
 7.1 マルチスレッドとは
        - スレッドとマルチスレッド
        - マルチスレッドの必要性
        - マルチスレッドの実際
 7.2 マルチスレッド・ライブラリ
        - Threadクラスの継承
        - Threadオブジェクトの使い方 - Thread.start()
        - Runnableインターフェース
        - 他スレッドの待機 - Thread.join()
 7.3 同期
        - 同期の必要性 (銀行口座の例とか)
        - synchronized 修飾子
        - synchronized文
 7.4 スレッド間通信
        - モニタの概念
        - wait()と notify()
        - モニタの必要性?
 7.5 デッドロックの回避
        - デッドロック (例)
        - デッドロック理論
        - 回避のためのお作法
 7.6 util.concurrent?
 7.7 復習と練習問題

8章 その他の言語機能
 8.1 内部クラス
        内部クラスとは
        static な内部クラス
        static でない内部クラス
        ローカルクラス
        匿名クラス
        内部インターフェース 
 8.2 Generics
        Generics とは
        Java の Generics でできること、できないこと
 8.3 Primitive ラッパークラス
        Primitive ラッパークラスとは
        Autoboxing

8章 その他の言語機能
 8.1 内部クラス
 8.2 Primitive ラッパークラス
 8.3 Generics
 8.7 復習と練習問題

第2部
9章 文字列処理
  1.文字と文字列
    - byte, char, String, StringBuffer
    - ユニコード、エンコーディング
  2. 文字列操作いろいろ
    - 文字列の生成
    - 文字列の結合、一部取り出し
    - 文字列の比較
    - 文字列の一部置き換え
  3. 文字列と数値
    - 文字列から数値へ
    - 数値から文字列へ
  5. 国際化とローカライゼーション
    - 書式 (Format)
    - 文字列操作 (Collator)

第10章 入出力とストリーム
+ ファイル
        - ファイルとは
        - Fileクラス
        - 絶対パスと相対パス
        - ディレクトリの作成
        - ファイルの属性
+ ファイルから/への入出力
        - FileI/OStream
        - FileReader/Writer
+ ストリームファミリ
        - InputStreamファミリ
        - OutputStreamファミリ
        - Readerファミリ
                * 文字エンコーディング
        - Writerファミリ
+ バイトストリームの文字ストリームへの変換
                * InputStreamReader/OutputStreamWriter
+ メモリから/への入出力
        - ByteArrayI/OStream
        - CharArrayReader/Writer
        - StringReader/WriterとStringBufferReader
+ バッファリング
        - BufferedI/OStream
        - BufferedReader/Writer
+ 便利な入出力修飾クラス
        - Decoratorパターン
                * FilterI/OStream, FilterReader/Writer
                * LineNumberInputStream/Reader (例として)
        - DataI/OStream
        - ObjectI/OStream
        - PrintWriter
        - StreamTokenizer
+ パイプ
        - 入力から出力へ
        - パイプの作成
        - マルチスレッドを用いたパイプ
+ ランダムアクセスファイル
        - シーケンシャルアクセスとランダムアクセス
        - ファイルポインタ
        - シーク
        - 読み書き

12. ネットワーク
 1. TCPソケット
   - IPアドレスとポート
   - サーバ
       ServerSocket
   - クライアント 
       Socket
   - 複数のクライアントを処理するサーバ
 2. データグラム
   - データグラムとは
       TCPソケットとは何が違う?
   - サーバとクライアントの作成
       DatagramSocket
       DatagramPacket
 3. HTTPクライアントの作成
   - Socketを使って実装
   - HttpURLConnectionを使って実装
 4. RMI
   - RMIとは
   - プログラムの構成
      リモートインターフェース
      スタブ
      スケルトン
   - RMIでHelloWorld

12章 Collection

12.1 Collectionの基礎
        java.util.*
        Collectionインターフェイスの紹介
        iterator
        Enumuration
        Comparetor
        同期化
        アプリケーションとデータ構造 (正確にはアルゴリズムとデータ構造)

12.2 List
        Listインターフェイス
        LinkedList
        Vector
        Stack

12.3 Set
        HashSet, LinkedHashSet
        TreeSet

12.4 Map
        Dictionary, Hashtable
        HashMap, LinkeHashMap
        TreeMap
        WeakHashMap

12.5 Array
        *Arrayだけ

12.6 BitSet
        *BitSetだけ

12.7 Collections

12.8 その他のjava.util.*のクラス
        Timer
        Random
        Event

13章 グラフィカルユーザインタフェース(小柳)
 13.1 フレーム
        - フレームの表示
        - GUIの部品はコンテナになっている
        - ラベルを追加してみよう
 13.2 パネルとレイアウト
        - パネル
        - レイアウトの種類
        - パネルと組み合わせて使おう
 13.3 ボタンとイベント
        - ボタン
        - イベントの受け取り方
        * 無名クラスの復習
        - その他のイベント
 13.4 その他の部品
        - 残りの部品をざっと一覧
        * キャンバス
        * チェックボックス
        * チェックボックスグループ(ラジオボタン)
        * チョイス
        * テキストフィールド、エリア
        * リスト
        * スクロールバー
        * ダイアログ、ファイルダイアログ
 13.5 グラフィクス
        - Graphics
        - 描画メソッドをざっと一覧
        * ドローイング
        * フィリング
        * カラー
        * 文字の表示
        - イメージの描画
 13.6 アニメーションとダブルバッファリング
        - スレッドを使って流れる絵を書いてみよう
        - ダブルバッファリングとは
        - createBufferingStrategy
        http://www5.airnet.ne.jp/sakuraba/java/laboratory/JDK1.4/Graphics/BufferStrategy/BufferStrategy.html
 13.7 アプレット
        - アプレットを作ってみよう
        - フレームの置き換え
 13.8 Swing
        - OSに依存しないGUI

14章 その他の便利なクラス(小柳)
 14.1 システム環境の利用
        * java.lang.System
        - 標準入出力の利用と設定
        - exit()の使い方と注意
        - arraycopy()の使い方
        - よくあるcurrentTimeMillis()の使い方
        * java.lang.Runtime
        - freeMemory()&gc()のよくある使い方
        - exec()の使用例と注意
 14.2 数値処理のための関数
        - java.lang.Math
 14.3 乱数の利用
        java.util.Random
 14.4 日付の取り扱い
        java.util.Calendar
        java.util.GregorianCalendar
        java.util.Date
        *これらの使用法の違い