Javaプログラム クイックリファレンス 第2版

[cover photo]
TOPICS
クイックリファレンス , Programming , Java
発行年月日
PRINT LENGTH
700
ISBN
4-87311-054-8
原書
Java Examples in a Nutshell, 2nd Edition
FORMAT

本書は、98年4月発刊の『JAVAプログラムクイックリファレンス』の第2版です。最新のJava1.3に対応し、新たにSwing、Java2D、サーブレット、JSPなど注目を集める機能を取り上げました。3部構成で、第1部はJavaの基礎とAPIの要点を、第2部ではGUIとグラフィックスについて、第3部では需要が高いウエブとデータベースの連携について詳述しています。『JAVAクイックリファレンス第3版』、『J2EEクイックリファレンス』の姉妹本です。そのまま使えるサンプルコード満載の実用的な書です。

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

正誤表1 - 第1刷用(2002年11月更新)

位置
p26
例1-15の2番目のコメント
// コマンドライン引数で指定された数値 (指定がなかった場合100) 以下の素数をすべて
// 計算します
// コマンドライン引数で指定された数値 (指定がなかった場合100) 以下で最大の素数
// すべて表示します
p27
4-5行目
for(int j = 2*i; j <= max; j = j + 1)
  isprime[j] = false;
for(int j = 2; i*j <= max; j = j + 1) 
  isprime[i*j] = false;
p256
7行目
java.awt.eventAcrionEvent java.awt.event.AcrionEvent
※eventとActionEventの間にピリオドが入ります。
p256
9行目
javax.swing.eventListSelectionEvent javas.swing.event.ListSelectionEvent
※eventとListSectionEventの間にピリオドが入ります。

目次

はじめに
本書のサンプル
表記法
謝辞

I部 コアJava API

1章 Javaの基本
        1.1 Hello World
        1.2 FizzBuzz
        1.3 フィボナッチ数列
        1.4 コマンドライン引数の使い方
        1.5 エコーを逆表示
        1.6 FizzBuzzのswitchバージョン
        1.7 階乗の計算
        1.8 階乗の再帰バージョン
        1.9 階乗のキャッシュバージョン
        1.10 巨大な階乗の計算
        1.11 例外処理
        1.12 対話型入力
        1.13 StringBufferの使い方
        1.14 数値のソート処理
        1.15 素数の計算
        1.16 練習問題

2章 オブジェクト、クラス、インタフェース
        2.1 矩形クラス
        2.2 Rectクラスのテスト
        2.3 Rectのサブクラス
        2.4 もう1つのサブクラス
        2.5 複素数
        2.6 擬似乱数の計算
        2.7 統計値の計算
        2.8 連結リスト
        2.9 高度なソート
        2.10 練習問題

3章 入出力
        3.1 ファイルとストリーム
        3.2 ファイル操作
        3.3 ファイル内容のコピー
        3.4 テキストファイルの読み込みと表示
        3.5 ディレクトリとファイルの情報を表示
        3.6 ファイルとディレクトリの圧縮
        3.7 文字ストリームのフィルタ処理
        3.8 テキスト行のフィルタ処理
        3.9 HTML出力ストリームのカスタマイズ
        3.10 練習問題

4章 スレッド
        4.1 スレッドの基本
        4.2 スレッドとスレッドグループ
        4.3 デッドロック
        4.4 タイマ
        4.5 練習問題

5章 ネットワーク機能
        5.1 URLで指定されたコンテンツをダウンロードする
        5.2 URLConnectionを使う
        5.3 URLConnectionを使って電子メールを送信する
        5.4 ウェブサーバに接続する
        5.5 簡単なウェブサーバ
        5.6 プロキシサーバ
        5.7 アプレットを使ったネットワーク機能
        5.8 汎用クライアント
        5.9 汎用マルチスレッドサーバ
        5.10 マルチスレッド対応プロキシサーバ
        5.11 データグラムの送信
        5.12 データグラムの受信
        5.13 練習問題

6章 セキュリティと暗号
        6.1 信頼されていないコードを実行する
        6.2 信頼されてないコードをロードする
        6.3 メッセージダイジェストとデジタル署名
        6.4 暗号について
        6.5 練習問題

7章 国際化
        7.1 ロケールという語
        7.2 Unicode
        7.3 文字符号化
        7.4 地域的習慣の扱い
        7.5 ユーザに表示するメッセージの地域化
        7.6 書式化されたメッセージ
        7.7 練習問題

8章 リフレクション
        8.1 クラスとメンバの情報を取得する
        8.2 指名によるメソッド呼び出し
        8.3 練習問題

9章 オブジェクト直列化
        9.1 簡単な直列化
        9.2 直列化のカスタマイズ
        9.3 エクスタナライズ(外部化)可能なクラス
        9.4 直列化とクラスのバージョン管理
        9.5 直列化アプレット
        9.6 練習問題


II部 グラフィックスとGUI

10章 GUI
        10.1 コンポーネント
        10.2 コンテナ
        10.3 レイアウトマネージャー
        10.4 イベントの処理
        10.5 完全なGUI
        10.6 アクションとリフレクション
        10.7 ダイアログの独自作成
        10.8 テーブルの表示
        10.9 木の表示
        10.10 簡単なウェブブラウザ
        10.11 プロパティによるGUIの記述
        10.12 テーマとMetalルック&フィール
        10.13 カスタムコンポーネント
        10.14 練習問題

11章 グラフィックス
        11.1 Java 1.2以前のグラフィックス
        11.2 Java 2D API
        11.3 描画と塗りつぶし
        11.4 変換
        11.5 BasicStrokeを使った線のスタイル指定
        11.6 線のストローク
        11.7 Paintを使った形状の塗りつぶし
        11.8 アンチエイリアス
        11.9 AlphaCompositeを使ったカラーの合成
        11.10 画像処理
        11.11 Shapeのカスタマイズ
        11.12 Strokeのカスタマイズ
        11.13 Paintのカスタマイズ
        11.14 高度なアニメーション
        11.15 GraphicsExampleの表示
        11.16 練習問題

12章 印刷
        12.1 Java 1.1 APIを使った印刷
        12.2 Java 1.2 APIを使った印刷
        12.3 複数ページからなるテキスト文書の印刷
        12.4 Swingの文書を印刷する
        12.5 練習問題

13章 データ転送
        13.1 データ転送のアーキテクチャ
        13.2 簡単なコピー&ペースト
        13.3 転送可能なデータのタイプ
        13.4 落書きのカット&ペースト
        13.5 落書きのドラッグ&ドロップ
        13.6 練習問題

14章 JavaBeans
        14.1 ビーンの基本
        14.2 簡単なビーン
        14.3 より複雑なビーン
        14.4 独自イベントの作成
        14.5 ビーン情報の指定
        14.6 簡単なプロパティエディタの定義
        14.7 複雑なプロパティエディタの定義
        14.8 ビーンカスタマイザの定義
        14.9 練習問題

15章 アプレット
        15.1 アプレット入門
        15.2 最初のアプレット
        15.3 時計アプレット
        15.4 アプレットとJava 1.0のイベントモデル
        15.5 Java 1.0のイベントの詳細
        15.6 アプレットパラメータの読み取り
        15.7 画像と音声
        15.8 JARファイル
        15.9 練習問題


III部 エンタープライズJava

16章 RMI
        16.1 リモート銀行
        16.2 銀行サーバ
        16.3 MUD
        16.4 リモートMUDインタフェース
        16.5 MUDサーバ
        16.6 MudPlaceクラス
        16.7 MudPersonクラス
        16.8 MUDクライアント
        16.9 RMIの高度な機能
        16.10 練習問題

17章 SQLによるデータベースアクセス
        17.1 データベースにアクセス
        17.2 データベースのメタデータを使う
        17.3 データベースの構築
        17.4 APIデータベースを使う
        17.5 アトミックトランザクション
        17.6 練習問題

18章 サーブレットとJSP
        18.1 サーブレットの設定
        18.2 Hello Worldサーブレット
        18.3 サーブレットの初期化と永続性:Counterサーブレット
        18.4 サーブレットによるデータベースアクセス
        18.5 JSPによるログイン画面
        18.6 リクエストの転送
        18.7 JSPページとJavaBeans
        18.8 ユーザセッションの終了
        18.9  カスタムタグ
        18.10 ウェブアプリケーションの配置
        18.11 練習問題

19章 XML
        19.1 JAXPとSAX 1を使った解析
        19.2 SAX 2を使った解析
        19.3 JAXPとDOMを使った解析と操作
        19.4 DOM木の中を移動する
        19.5 DOM Level 2で文書の中を移動する
        19.6 JDOM API
        19.7 練習問題

20章 プログラム索引


例題目次

1章 Javaの基本
例1-1    Hello.java(Hello Worldの表示)
例1-2    FizzBuzz.java(FizzBuzzゲーム)
例1-3    Fibonacci.java(フィボナッチ数列)
例1-4    Echo.java(コマンドライン引数の表示)
例1-5    Reverse.java(コマンドライン引数の逆表示)
例1-6    FizzBizz2.java(switch文を使ったFizzBuzzゲーム)
例1-7    Factorial.java(階乗の計算)
例1-8    Factorial2.java(再帰を使った階乗の計算)
例1-9    Factorial3.java(キャッシュを使った階乗の計算)
例1-10   Factorial4.java(巨大な階乗の計算)
例1-11   FactComputer.java(例外処理を備えた階乗の計算)
例1-12   FactQuoter.java(対話型入力をする階乗の計算)
例1-13   Rot13Input.java(文字列を暗号化)
例1-14   SortNumbers.java(数値のソート)
例1-15   Sieve.java(素数の計算)

2章 オブジェクト、クラス、インタフェース
例2-1    Rect.java(矩形を表現するクラス)
例2-2    RectTest.java(矩形クラスのテスト)
例2-3    DrawableRect.java(矩形を表現するサブクラス)
例2-4    ColoredRrect.java(色付きの矩形を表現するサブクラス)
例2-5    ComplexNumber.java(複素数を計算するクラス)
例2-6    Ramdomizer.java(擬似乱数の計算)
例2-7    Averager.java(平均と標準偏差の計算)
例2-8    LinkedList.java(連結リストを実装するクラス)
例2-9    Sorter.java(高度なソート)

3章 入出力
例3-1    Delete.java(ファイルやディレクトリの削除)
例3-2    FileCopy.java(ファイルのコピー)
例3-3    FileViewer.java(ファイルの内容を表示)
例3-4    FileLister.java(ファイルやディレクトリの情報を表示)
例3-5    Compress.java(ファイルやディレクトリの圧縮)
例3-6    RemoveHTMLReader.java(HTMLタグの削除)
例3-7    GrepReader.java(指定した文字列を含む行を返す)
例3-8    HTMLWriter.java(ブラウザのウィンドウを新規作成しHTML文書を表示)

4章 スレッド
例4-1    ThreadDemo.java(スレッドを定義し実行するクラス)
例4-2    ThreadLister.java(スレッドとスレッドグループの表示)
例4-3    Deadlock.java(デッドロックの発生)
例4-4    TimerTask.java(TimerTaskの実装)
例4-5    Timer.java(Timerの実装)

5章 ネットワーク機能
例5-1    GetURL.java(URLで指定されたコンテンツのダウンロード)
例5-2    GetURLInfo.java(URLに関する情報の取得)
例5-3    SendMail.java(メールの送信)
例5-4    HttpClient.java(HTTPプロトコルでウェブサーバに接続)
例5-5    HttpMirror.java(簡単なウェブサーバ)
例5-6    SimpleProxyServer.java(プロキシサーバ)
例5-7    Who.java(ログイン中のユーザを知らせるアプレット)
例5-8    GenericClient.java(汎用クライアント)
例5-9    Server.java(汎用マルチスレッドサーバ)
例5-10   ProxyServer.java(マルチスレッド対応プロキシサーバ)
例5-11   UDPSend.java(データグラムの送信)
例5-12   UDPReceive.java(データグラムの受信)

6章 セキュリティと暗号
例6-1    SafeServer.java(安全なサーバ)
例6-2    SafeServer.policy(Serviceクラスをロードする権限を与える)
例6-3    SecureService.java(SafeServerのテスト)
例6-4    Manifest.java(メッセージダイジェスト、デジタル書名、キーストアを使うデモプログラム)
例6-5    TripleDES.java(ファイルの暗号化/複号化)

7章 国際化
例7-1    UnicodeDisplay.java(Unicodeの表示)
例7-2    ConvertEncoding.java(文字エンコーディング)
例7-3    Portfolio.java(地域的習慣を反映した株式ポートフォリオ)
例7-4    SimpleMenu.java(地域化されたメニューペインを作成)
例7-5    LocalizedError.java(例外メッセージを地域化して表示)

8章 リフレクション
例8-1    ShowClass.java(クラスの情報を表示)
例8-2    Command.java(メソッドの呼び出し)

9章 オブジェクト直列化
例9-1    Serializer.java(基本的な直列化)
例9-2    IntList.java(カスタム直列化)
例9-3    CompactIntList.java(小さな整数を多数格納する)

10章 GUI
例10-1   ShowComponent.java(コンポーネントの表示)
例10-2   Containers.java(コンテナとコンポーネントの階層を表示)
例10-3   FlowLayoutPane.java(FlowLayoutでボタン配置)
例10-4   GridLayoutPane.java(GridLayoutで格子にボタンを配置)
例10-5   BorderLayoutPane.java(コンテナの辺に沿って配置)
例10-6   BoxLayoutPane.java(BoxとBoxLayoutを使ったコンポーネントの配置)
例10-7   GridBagLayoutPane.java(GridBagLayoutでコンポーネントを配置)
例10-8   NullLayoutPane.java(レイアウトマネージャーを使わないコンポーネントの配置)
例10-9   ColumnLayout.java(コンポーネントを1列に配置)
例10-10  ColumnLayoutPane.java(ColumnLayoutを使った配置)
例10-11  ScribblePane1.java(簡単な落書き)
例10-12  ScribblePane2.java(落書き)
例10-13  ScribblePane3.java(消去、描画色が選択できる落書き)
例10-14  ScribblePane4.java(イベントリスナを使用しない落書き)
例10-15  ItemChooser.java(選択項目の表示)
例10-16  Scribble.java(簡単なお絵描きソフト)
例10-17  CommandAction.java(Commandオブジェクトを使ったアクションの実行)
例10-18  FontChooser.java(フォントの情報を表示)
例10-19  PropertyTable.java(プロパティをテーブル形式で表示)
例10-20  ComponentTree.java(ツリーの表示)
例10-21  WebBrowser.java(簡単なウェブブラウザの作成)
例10-22  GUIResourceBundle.java(リソースを解析)
例10-23  ResourceParser.java(複雑なリソースタイプの処理)
例10-24  CommandParser.java(コマンドの解析)
例10-25  ActionParser.java(アクションの解析)
例10-26  MenuBarParser.java(メニューバーの解析)
例10-27  MenuParser.java
例10-28  ThemeManager.java(Metalルック&フィール)
例10-29  AppletMenuBar.java(アプレットにメニューバーを表示)

11章 グラフィックス
例11-1   GraphicsSampler.java(基本描画プリミティブ)
例11-2   FontList.java(標準フォントの表示)
例11-3   ColorGradient.java(カラーグラデーションの作成)
例11-4   BouncingCircle.java(円のアニメーション)
例11-5   GraphicsExample.java(Java 2D APIでのメソッドの定義)
例11-6   Shapes.java(描画と塗りつぶし)
例11-7   Transforms.java(形状の変換)
例11-8   LineStyles.java(線のスタイル)
例11-9   Stroking.java(線のストローク)
例11-10  Paints.java(形状の塗りつぶし)
例11-11  AntiAlias.java(アンチエイリアス)
例11-12  CompositeEffects.java(クリッピング効果)
例11-13  ImageOps.java(画像処理フィルタ)
例11-14  Spiral.java(螺旋の描画)
例11-15  CustomStrokes.java(ストロークのカスタマイズ)
例11-16  GenericPaint.java(塗りつぶしのカスタマイズ)
例11-17  Hypnosis.java(螺旋のアニメーション)
例11-18  GraphicsExampleFrame.java(GraphicsExampleの表示)

12章 印刷
例12-1   ScribblePrinter1.java(Java 1.1 APIを使った落書き内容の印刷)
例12-2   ScribblePrinter2.java(Java 1.2 APIを使った落書き内容の印刷)
例12-3   HardcopyWriter.java(テキスト文書の印刷)
例12-4   PrintableDocument.java(Swing文書の印刷)

13章 データ転送
例13-1   SimpleCutAndPaste.java(文字列のカット&ペースト)
例13-2   Scribble.java(データ転送のための定義)
例13-3   ScribbleCutAndPaste.java(落書きのカット&ペースト)
例13-4   ScribbleDragAndDrop.java(落書きのドラッグ&ドロップ)

14章 JavaBeans
例14-1   MultiLineLabel.java(複数行のテキストを表示)
例14-2   Alignment.java(行揃えのための補助クラス)
例14-3   YesNoPanel.java(二者択一ダイアログ)
例14-4   AnswerEvent.java(ボタン識別のためのイベント)
例14-5   AnswerListener.java(ボタン識別のためのインタフェース)
例14-6   YesNoPanelBeanInfo.java(ビーン情報の指定)
例14-7   AlignmentEditor.java(プロパティ値の表示と編集方法を指定)
例14-8   YesNoPanelMessageEditor.java(複雑なプロパティエディタ)
例14-9   YesNoPanelCustomizer.java(ビーンプロパティの設定)

15章 アプレット
例15-1   FirstApplet.java(Hello Worldの表示)
例15-2   Clock.java(現在時刻の表示)
例15-3   Scribble.java(マウスで落書き)
例15-4   EventTester.java(ユーザ入力の処理)
例15-5   ColorScribble.java(描画色と背景色を設定)
例15-6   Soundmap.java(音声を再生)

16章 RMI
例16-1   Bank.java(リモート銀行のクラスとインタフェースを定義)
例16-2   RemoteBankServer.java(リモート銀行のサーバ)
例16-3   Mud.java(MUDシステムのクラスとインタフェースを定義)
例16-4   MudServer.java(MUDシステムのサーバ)
例16-5   MudPlace.java(MUD内部の場所や部屋を提供するサーバ)
例16-6   MudPerson.java(MUDのリモートオブジェクト)
例16-7   MudClient.java(MUDシステムのクライアント)

17章 SQLによるデータベースアクセス
例17-1   ExecuteSQL.java(SQLインタプリタ)
例17-2   GetDBInfo.java(データベース情報の取得)
例17-3   MakeAPIDB.java(データベースの構築)
例17-4   LookupAPI.java(JAVA API情報を取得するクエリ)
例17-5   RemoteDBBankServer.java(リモート銀行データベースサーバ)

18章 サーブレットとJSP
例18-1   Hello.java(Hello Worldの表示)
例18-2   Counter.java(カウンタの管理)
例18-3   Query.java(データベースへのアクセス)
例18-4   login.jsp(ログイン画面)
例18-5   forcelogin.jsp(ログイン画面の断片)
例18-6   portal.jsp(ポータルサイトの作成)
例18-7   UserBean.java(JSPタグプロパティの定義)
例18-8   Logout.java(ログアウト)
例18-9   DecorBox.java(カスタムタグ)
例18-10  WEB-INF/tlds/decor_0_1.tld(カスタムタグライブラリ用TLD)
例18-11  web.xml(ウェブアプリケーションの設定)
例18-12  makewar.sh:ウェブアプリケーション用のパッケージスクリプト

19章 XML
例19-1   ListServlets1.java(SAX1を利用したサーブレット名とクラス名の表示)
例19-2   ListServlets2.java(SAX2を利用したサーブレット名とクラス名の表示)
例19-3   WebAppConfig.java(DOM木の操作)
例19-4   XMLDocumentWriter.java(DOM木をXMLテキストに変換)
例19-5   DOMTreeWalkerTreeModel.java(DOM木の中を移動)
例19-6   WebAppConfig2.java(JDOM APIを使ったDOM木の操作)