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
*これらの使用法の違い