Javaクックブック

―Java開発者のためのレシピ集

[cover photo]
TOPICS
クックブック , Programming , Java
発行年月日
PRINT LENGTH
832
ISBN
4-87311-095-5
原書
Java Cookbook
FORMAT
Print
7,480円
この商品は品切れ再入荷未定です

本書は、Javaでプログラムする際に多くのプログラマが直面する問題を300例以上も取り上げ、わかりやすいレシピ集というスタイルで解説しています。すでにJavaの基礎は習得したプログラマがステップアップするために最適な一冊です。取り上げている内容は、コンパイル、デバッグ、データの入出力、GUI開発、ネットワーク機能など基礎的なものから、正規表現、データ構造、他の言語とのミックスなど本書独自のものまで幅広く、Javaプログラムのサンプル集として決定版と言えるものです。

目次

監訳者まえがき

まえがき

1章      さあ始めよう―コンパイル、実行、デバッグについて
レシピ1.0  はじめに
レシピ1.1  Javaでのコンパイルと実行―JDKについて
レシピ1.2  カラーハイライト対応のエディタを使った編集とコンパイル
レシピ1.3  IDEを使ったコンパイル、実行、テスト
レシピ1.4  本書に収録されたクラスを使う
レシピ1.5  jrを使ってコンパイルを自動化する
レシピ1.6  makeを使ってコンパイルを自動化する
レシピ1.7  Antを使ってコンパイルを自動化する
レシピ1.8  アプレットを実行する
レシピ1.9  非推奨警告が表示されたら
レシピ1.10 #ifdefがないけど、条件デバッグするには
レシピ1.11 デバッグ情報の表示
レシピ1.12 デバッガを使う
レシピ1.13 単体テスト―デバッガを使わずに済む方法
レシピ1.14 Javaのクラスファイルを逆コンパイルする
レシピ1.15 Javaファイルを逆コンパイルされないようにする
レシピ1.16 意味のわかるトレースバックを表示させるには
レシピ1.17 Javaソースコードを探すには
レシピ1.18 プログラム:Debug
2章      ランタイム環境を操作する
レシピ2.0  はじめに
レシピ2.1  環境変数を取得する
レシピ2.2  システムプロパティ
レシピ2.3  JDKのリリースに依存するコードを書く
レシピ2.4  オペレーティングシステムに依存するコードを書く
レシピ2.5  CLASSPATHを有効活用する
レシピ2.6  拡張APIや他のパッケージのAPIを使う
レシピ2.7  コマンドライン引数を解析する
3章      文字列を料理する
レシピ3.0  はじめに
レシピ3.1  substringを使って文字列を分解する
レシピ3.2  StringTokenizerを使って文字列を分解する
レシピ3.3  StringBufferと+を使った文字列の連結
レシピ3.4  文字列を1文字ずつ処理する
レシピ3.5  文字列の行揃え
レシピ3.6  Unicode文字をStringに変換する
レシピ3.7  文字列を単語や文字で逆順にする
レシピ3.8  タブを変換する/タブに変換する
レシピ3.9  大文字と小文字の区別について
レシピ3.10 テキスト文書をインデントする
レシピ3.11 印刷可能でない文字を入力する
レシピ3.12 文字列の最後にある空白を除く
レシピ3.13 CSVデータの解析
レシピ3.14 プログラム:簡単なテキストフォーマッタ
レシピ3.15 プログラム:Soundexによる氏名の比較
4章      正規表現でパターンマッチング
レシピ4.0  はじめに
レシピ4.1  正規表現の構文
レシピ4.2  REの実際の動作について
レシピ4.3  Javaで正規表現を使う
レシピ4.4  REをインタラクティブにテストする
レシピ4.5  一致部分を検索する
レシピ4.6  一致部分を置換する
レシピ4.7  一致パターンをすべて表示する
レシピ4.8  一致する行を検索する
レシピ4.9  match()とsubst()での大文字と小文字の区別
レシピ4.10 REをプリコンパイルする
レシピ4.11 テキスト中の改行に一致させる
レシピ4.12 プログラム:データマイニング
レシピ4.13 プログラム:Grepの完全バージョン
5章      数値を料理する
レシピ5.0  はじめに
レシピ5.1  文字列が妥当な数値かチェックする
レシピ5.2  大きな型の数値を小さな型の変数に格納する
レシピ5.3  浮動小数点を使わずに分数を計算する
レシピ5.4  浮動小数点の精度を保証する
レシピ5.5  浮動小数点を比較する
レシピ5.6  浮動小数点数を丸める
レシピ5.7  数値をフォーマットする
レシピ5.8  2/8/10/16進数への変換
レシピ5.9  整数の数列を処理する
レシピ5.10 ローマ数字で表示する
レシピ5.11 複数形を意識したフォーマット処理
レシピ5.12 乱数を生成する
レシピ5.13 よりまともな乱数を生成する
レシピ5.14 三角関数の計算
レシピ5.15 対数の計算
レシピ5.16 行列の乗算
レシピ5.17 複素数の計算
レシピ5.18 とても大きな数を処理する
レシピ5.19 プログラム:TempConverter―華氏温度と摂氏温度の換算表
レシピ5.20 プログラム:数の回文
6章      日付と時刻
レシピ6.0  はじめに
レシピ6.1  今日の日付を求める
レシピ6.2  指定したフォーマットで日付/時刻を表示する
レシピ6.3  日付を別のエポックで表現する
レシピ6.4  YMDHMSをCalendarやエポック経過秒に変換する
レシピ6.5  文字列を解析してDateにする
レシピ6.6  エポック経過秒をDMYHMSに変換する
レシピ6.7  DateやCalendarに対して加算や減算を行なう
レシピ6.8  2つのDateの差を求める
レシピ6.9  2つのDateを比較する
レシピ6.10 曜日/月/年あるいは週を求める
レシピ6.11 カレンダー表示
レシピ6.12 高精度のタイマー
レシピ6.13 処理をしばらくスリープさせる
レシピ6.14 プログラム:お知らせサービス
7章      Javaで使えるデータ構造
レシピ7.0  はじめに
レシピ7.1  配列を使ったデータ構造
レシピ7.2  配列の大きさを変更する
レシピ7.3  配列よりも動的なデータ構造
レシピ7.4  Iteratorを使ってデータに依存しないアクセスを実現する
レシピ7.5  連結リストのデータ構造
レシピ7.6  HashtableやHashMapを使った対応付け
レシピ7.7  PropertiesやPreferencesに文字列を格納する
レシピ7.8  コレクションをソートする
レシピ7.9  Java 1.1でソートする
レシピ7.10 わざわざソートせずにすます
レシピ7.11 セット
レシピ7.12 コレクションにあるオブジェクトを探す
レシピ7.13 Collectionを配列に変換する
レシピ7.14 イタレータを自前で提供する
レシピ7.15 スタック
レシピ7.16 多次元のデータ構造
レシピ7.17 コレクションのまとめ
レシピ7.18 プログラム:実行時間の比較
8章      オブジェクト指向の技法
レシピ8.0  はじめに
レシピ8.1  オブジェクトを表示する:toString()を使ったフォーマット処理
レシピ8.2  equals()メソッドをオーバーライドする
レシピ8.3  hashCode()メソッドをオーバーライドする
レシピ8.4  clone()メソッドをオーバーライドする
レシピ8.5  finalize()メソッド
レシピ8.6  インナークラスを使う
レシピ8.7  インタフェースを介してコールバックを提供する
レシピ8.8  多形性/抽象メソッド
レシピ8.9  値渡し
レシピ8.10 自前の例外を活用する
レシピ8.11 プログラム:Plotter
9章      入出力
レシピ9.0  はじめに
レシピ9.1  標準入力から読み取る
レシピ9.2  標準出力に書き出す
レシピ9.3  ファイルを名前で開く
レシピ9.4  ファイルをコピーする
レシピ9.5  ファイルを文字列に読み込む
レシピ9.6  標準ストリームの割り当てを変更する
レシピ9.7  ストリームを複製して書き出す
レシピ9.8  さまざまな文字セットで読み書きする
レシピ9.9  厄介な改行文字
レシピ9.10 プラットフォーム依存ファイルのコードに注意
レシピ9.11 継続行を読む
レシピ9.12 ファイルを走査する
レシピ9.13 バイナリ形式データ
レシピ9.14 ファイルでの位置を移動する
レシピ9.15 Cで作成されたデータをデータストリームに書き出す
レシピ9.16 シリアライズされたオブジェクトの保存と復元
レシピ9.17 SerialVersionIDを使ってClassCastExceptionsを予防する
レシピ9.18 JARやZipアーカイブを読み書きする
レシピ9.19 圧縮ファイルを読み書きする
レシピ9.20 プログラム:テキストをPostScriptに変換する
レシピ9.21 プログラム:TarList(ファイル変換)
10章     ディレクトリとファイルの操作
レシピ10.0 はじめに
レシピ10.1 ファイルの情報を取得する
レシピ10.2 ファイルを作成する
レシピ10.3 ファイル名を変更する
レシピ10.4 ファイルを削除する
レシピ10.5 一時ファイルを作成する
レシピ10.6 ファイルの属性を変更する
レシピ10.7 ディレクトリを一覧表示する
レシピ10.8 ルートディレクトリを取得する
レシピ10.9 ディレクトリを新規作成する
レシピ10.10        プログラム:Find
11章     シリアルポートとパラレルポート
レシピ11.0 はじめに
レシピ11.1 ポートを選択する
レシピ11.2 シリアルポートを開く
レシピ11.3 パラレルポートを開く
レシピ11.4 ポートの衝突を解決する
レシピ11.5 ロックステップ方式でポートを読み書きする
レシピ11.6 イベント駆動方式でポートを読み書きする
レシピ11.7 スレッド方式でポートを読み書きする
レシピ11.8 プログラム:Penmanプロッタ
12章     グラフィックスとサウンド
レシピ12.0 はじめに
レシピ12.1 Graphicsオブジェクトを使って描画する
レシピ12.2 グラフィックスコンポーネントをテストする
レシピ12.3 テキストを描画する
レシピ12.4 コンポーネントの中央にテキストを描画する
レシピ12.5 ドロップシャドウを描画する
レシピ12.6 画像を描画する
レシピ12.7 サウンドファイルを再生する
レシピ12.8 ビデオ動画を表示する
レシピ12.9 Graphics2Dを使ってテキストを描画する
レシピ12.10        JDK1.1での印刷処理
レシピ12.11        Java2での印刷処理
レシピ12.12        プログラム:PlotterAWT
レシピ12.13        プログラム:Grapher
13章     GUI
レシピ13.0 はじめに
レシピ13.1 GUIコンポーネントを表示する
レシピ13.2 ウィンドウのレイアウトをデザインする
レシピ13.3 タブ区画で表示する
レシピ13.4 アクションの処理:ボタンで何かを実行させる
レシピ13.5 無名のインナークラスを使ってアクションを処理する
レシピ13.6 「ウィンドウを閉じる」でプログラムを終了させる
レシピ13.7 ダイアログでユーザの応答を求める
レシピ13.8 プログラムの出力をウィンドウに表示する
レシピ13.9 JFileChooserを使ってファイルを選択する
レシピ13.10        色を選択する
レシピ13.11        メインウィンドウをスクリーンの中央に配置する
レシピ13.12        Swingプログラムのルック&フィールを変更する
レシピ13.13        プログラム:独自のフォント選択ダイアログ
レシピ13.14        プログラム:独自のレイアウトマネージャ
14章     国際化と地域化
レシピ14.0 はじめに
レシピ14.1 I18Nのリソースを使ってボタンを作成する
レシピ14.2 利用可能なロケールを一覧する
レシピ14.3 国際化リソースを使ってメニューを作成する
レシピ14.4 国際化のためのルーチンを作成する
レシピ14.5 国際化リソースを使ってダイアログを作成する
レシピ14.6 リソースバンドルを作成する
レシピ14.7 JILTを使ってコードを国際化する
レシピ14.8 特別なロケールを使う
レシピ14.9 デフォルトロケールを設定する
レシピ14.10        メッセージをフォーマット処理する
レシピ14.11        プログラム:MenuIntl
レシピ14.12        プログラム:BusCard
15章     ネットワーククライアント
レシピ15.0 はじめに
レシピ15.1 サーバに接続する
レシピ15.2 ネットワークアドレスを調べて報告する
レシピ15.3 ネットワークエラーを処理する
レシピ15.4 テキストデータの読み書きを行なう
レシピ15.5 バイナリデータの読み書きを行なう
レシピ15.6 シリアライズされたデータの読み書きを行なう
レシピ15.7 UDPデータグラム
レシピ15.8 プログラム:TFTPクライアント
レシピ15.9 プログラム:Telnetクライアント
レシピ15.10        プログラム:チャットのクライアント
16章     サーバサイドJava:ソケット
レシピ16.0 はじめに
レシピ16.1 サーバを立ち上げる
レシピ16.2 応答を(文字列やバイナリで)返す
レシピ16.3 オブジェクトの情報を返す
レシピ16.4 複数のクライアントを処理する
レシピ16.5 ネットワークのログを作成する
レシピ16.6 プログラム:Javaチャットサーバ
17章     ネットワーククライアント その2:アプレットとウェブクライアント
レシピ17.0 はじめに
レシピ17.1 ウェブページにJavaを組み込む
レシピ17.2 アプレットの作り方
レシピ17.3 アプレットのホストにあるサーバに接続する
レシピ17.4 アプレットを使ってドキュメントを表示させる
レシピ17.5 アプレットを使ってCGIスクリプトを実行させる
レシピ17.6 URLの内容を読む
レシピ17.7 URLからHTMLを抽出する
レシピ17.8 ファイルからURLを抽出する
レシピ17.9 ファイル名をURLに変換する
レシピ17.10        プログラム:MkIndex
レシピ17.11        プログラム:LinkChecker
18章     ウェブサーバJava:サーブレットとJSP
レシピ18.0 はじめに
レシピ18.1 サーブレット:HTMLページを生成する
レシピ18.2 サーブレット:フォームのパラメータを処理する
レシピ18.3 クッキー
レシピ18.4 セッションのトラッキング
レシピ18.5 サーブレットからPDFを生成する
レシピ18.6 HTMLとJavaを混在させる:JSP
レシピ18.7 取り込み(include)と転送(forward)
レシピ18.8 JavaServer Pagesからサーブレットを使う
レシピ18.9 JavaBeanを使ってJSPを簡潔にする
レシピ18.10        JSPの基本構文
レシピ18.11        プログラム:CookieCutter
レシピ18.12        プログラム:JavaDotウェブニュースポータル
19章     Javaと電子メール
レシピ19.0 はじめに
レシピ19.1 メールを送信する:ブラウザ対応バージョン
レシピ19.2 メールを送信する:実用バージョン
レシピ19.3 メール送信機能をもつサーバプログラム
レシピ19.4 MIMEメールを送信する
レシピ19.5 メールの設定を行なう
レシピ19.6 JavaMailを使わずにメールを送信する
レシピ19.7 メールを読む
レシピ19.8 プログラム:MailReaderBean
レシピ19.9 プログラム:MailClient
20章     データベースにアクセスする
レシピ20.0 はじめに
レシピ20.1 テキストファイルでデータベース
レシピ20.2 DBMデータベース
レシピ20.3 JDBCの設定と接続
レシピ20.4 JDBCデータベースに接続する
レシピ20.5 JDBCでクエリーを送信し、結果を取得する
レシピ20.6 JDBCでパラメータ付きSQL文を使う
レシピ20.7 JDBCでストアードプロシジャを使う
レシピ20.8 ResultSetを使ってデータを変更する
レシピ20.9 SQLを使ってデータを変更する
レシピ20.10        JDBCメタデータを取得する
レシピ20.11        プログラム:JDAdmin
21章     XML
レシピ21.0 はじめに
レシピ21.1 XSLTを使ってXMLを変換する
レシピ21.2 SAXを使ってXMLを構文解析する
レシピ21.3 DOMを使ってXMLを構文解析する
レシピ21.4 DTDを使って構造を検証する
レシピ21.5 DOMを使ってXMLを生成する
レシピ21.6 プログラム:xml2mif
22章     分散コンピューティング:RMI
レシピ22.0 はじめに
レシピ22.1 RMIによる通信規約を定義する
レシピ22.2 RMIクライアント
レシピ22.3 RMIサーバ
レシピ22.4 ネットワークでRMIを使用する
レシピ22.5 プログラム:RMIコールバック
レシピ22.6 プログラム:RMIWatch
23章     パッケージとJAR
レシピ23.0 はじめに
レシピ23.1 パッケージを作成する
レシピ23.2 Javadocを使ってクラスのドキュメントを作成する
レシピ23.3 jarコマンドでアーカイブを作成する
レシピ23.4 JARからアプレットを実行する
レシピ23.5 JDKを使ってアプレットを実行する
レシピ23.6 JARからプログラムを実行する
レシピ23.7 クラスをJavaBeanにする
レシピ23.8 ビーンをJARに瓶詰めする
レシピ23.9 サーブレットをWARファイルにパッケージする
レシピ23.10        Write Once, Install Anywhere
レシピ23.11        Java Web Start
レシピ23.12        JARファイルに署名する
24章     スレッド
レシピ24.0 はじめに
レシピ24.1 コードを別スレッドで実行する
レシピ24.2 アニメーション動画を表示する
レシピ24.3 スレッドを停止する
レシピ24.4 待ち合わせとタイムアウト
レシピ24.5 スレッド通信:コードを同期させる
レシピ24.6 スレッド通信:wait()とnotifyAll()
レシピ24.7 エディタでの自動保存
レシピ24.8 マルチスレッドのネットワークサーバ
25章     イントロスペクションとClassという名前のクラス
レシピ25.0 はじめに
レシピ25.1 クラス記述子を取得する
レシピ25.2 メソッドとフィールドを探して使用する
レシピ25.3 クラスを動的にロードし、インスタンスを作成する
レシピ25.4 ゼロからクラスを生成する
レシピ25.5 性能を測定する
レシピ25.6 クラスの情報を表示する
レシピ25.7 プログラム:CrossRef
レシピ25.8 プログラム:AppletViewer
26章     他言語と一緒にJavaを使う
レシピ26.0 はじめに
レシピ26.1 外部プログラムを実行する
レシピ26.2 プログラムを実行し、その出力を記録する
レシピ26.3 BSFを使ってJavaとスクリプトを混在させる
レシピ26.4 ネイティブコード(C/C++)をブレンドする
レシピ26.5 ネイティブコードからJavaを呼び出す
レシピ26.6 プログラム:DBM
あとがき
索引

コラム目次
make対ant
エスケープを二重化するのを忘れてはいけません
サブクラス、抽象クラス、インタフェースのどれを使う?
ソフトウェアを国際化する3つのステップ
UDPクライアントを作成するための6つのステップ
サーブレットをデバッグするには
HttpSessionを使ってサーブレットをデバッグするには
SMTPを使ってメールを送信するための基本手順
Storeを使ってメールを読む方法
JDBCクエリーを使う手順
RMIを使うための手順
RMIサーバを作成するための手順
Java Web Startを使うには
Javaでネイティブコードを呼び出す手順