プログラマとプロマネのあいだ

プログラマもやるし、プロマネもやるし、たまに似非アーキとか営業っぽいこともやる

Java逆引きクイックリファレンスの正誤表を勝手に作ってみる。

☆本家サポートページ
http://book.mycom.co.jp/support/bookmook/quick/Java/

☆勝手に正誤表

ページ 番号 場所 内容
p3 はじめに 1行目 誤: サンマイクロシステム
正: サンマイクロシステムズ
p5 目次 Q023 誤: デクラスのメソッドと〜
正: クラスのメソッドと〜
p24 Introduction005 1段落目の2行目 本文と実行例が合ってない。
本文: 「C:\sample>」と表示されれば〜、
実行例: C:\java
p24 Introduction005 3段落目の1行目 本文と実行例が合ってない。
本文: java 「chapter01.HelloWorld」とコマンドを入力し〜
実行例: java HelloWorld
p28 Introduction008 下の表 誤: %c/$C
正: %c/%C
p29 Introduction008 PrintfSample001.java コメントとコードが合ってない。
コメント: //オブジェクトをbooleanで表示する %b/%B
コード: %Bのコードがない。
p29 Introduction008 PrintfSample001.java コメントとコードが合ってない。
コメント: //浮動小数点を有効桁数を指定して表示する %f
コード: %eの使用例。
p29 Introduction008 PrintfSample001.java %eの使用例を示しているところで、同じ処理を繰り返している。恐らく、%eと%Eそれぞれの例を示したかったと思われるが、そうなっていない。
p29 Introduction008 PrintfSample001.java コメントとコードが合ってない。
コメント: //浮動小数点を有効桁数を指定して表示する %f
コード: %g/%Gの使用例。
p36 Q*001 一番下の段落 浮動小数点は、少数を扱う型でそのサイズにかかわらずdouble型を使用します。と書いてあるにも関わらず、その下のコード例ではfloat型を使っている。説明とコード例が矛盾している。
p37 Q*001 2段落目 誤: 下の方式では〜
正: 下の式では〜
p37 Q*001 2段落目 次の式でa
p44 Q*004 Sample004.java メンバ変数member1 スコープはこのクラス全体とあるが、パッケージプライベートな変数なので、実際は同一パッケージ内である。
p46 Q*005 算術演算子の表: -- 誤: b--は変数の評価に減算
正: b--は変数の評価後に減算
p48 Q*006 比較演算子の表: instance of 誤: aがbと同じクラスかbのサブクラスである場合にtrueを返す
正: aがnullでなく、かつ、aがbにClassCastExceptionを起こさずにキャストできる場合にtrueを返す
p50 Q*007 Sample007.java コメントとコードが合ってない。
コメント: // &
コード: ans = (a == 5 && b == 10);
p56 Q*010 Sample010.java double→intに変換しているが、結果出力は変換前のdoubleを指定してしまっている。サンプルの意図とは異なると思われる。
p59 Q*012 3行目 誤: 「case」の後に記述し";"の後に〜
正: 「case」の後に記述し":"の後に〜
p59 Q*012 3〜4行目 「switch文」の特徴は合致するcaseの処理をすべて実行することです。とあるが、「すべて」の意味するところが不明。単純に「switch文」の特徴は合致するcaseの処理を実行することです。で良いのでは?
p64 Q*015 Sample015.java コメントとコードが合ってない。
コメント: // 条件式・・・10より大きくなった場合終了
コード: while (count < 10); //10以上になった場合終了
p80 Q*026 アクセスレベルの種類 クラス宣言時に指定できるアクセスレベルは「public」と「無指定」のみです。とあるが、内部クラスにおいては、「private」や「protected」も指定できる。
p95 Q*032 Sample032c.java コメントがおかしい。「一般社員オブジェクトとして主任職オブジェクトを生成する。」
ここでは主任職 extends 一般社員だが、is-a関係が成り立っていないので、継承のサンプルとして妥当でないと思われる。
p130 Q*049 下の方 下図の配列を作成するには以下のように記述します。と書いておきながら、コード例と図が異なる。
コード例: int i = new int[3][4]; (3×4の配列)
図: 3×5の配列
p135 Q*051 Sample051b.java 可変長パラメータにnullを渡す例も記載されている。一見printFlyメソッドの先頭で可変長パラメータflyTypesにnull判定を行っているので、NullPointerExceptionが起きないように見えるが、実際はnullが一つ入った配列が渡されるので、このnull判定はtrueで判定され後続処理に続く。であれば、一体何のためにこのnull判定を行っているかが分からない。
※間違いではないが、分かりづらい。
p141 Q*053 3行目 Calendarクラスは抽象クラスなので、具象クラスのGregorianCalendarを使用します。とあるが、GregorianCalendar#getInstanceを使わなくても、Calendar#getInstanceで問題ない。
※実際のところ、Calendar#getInstanceを呼ぶと、このメソッドの中でGregorianCalendarを生成し返すようになっている。
p172 Q*064 メモ タイトルがjavadocとなっているが、書いてある内容がjavadocとは関係ない。
p196 Q*080 Sample080b.java 例外をスローする記述が誤り。
誤: throws myException
正: throw myException
※一行で記述する場合は〜のコメント中も同じ。
※サポートページでダウンロードできるソースは問題ありませんでした。誤植ですか?
p197 Q*081 タイトル 正確性に欠ける表現:
誤: OutOfMemory
正: OutOfMemoryError
p204 Q*086 2行目 URL:
誤: Universal Resource Locator
正: Uniform Resource Locator
p210 Q*089 Sample089.java convertDateメソッドに引数lがあるが、convertDateメソッド内で使用していない。サンプルの意図とは異なると思われる。
p220 Q*095 実行結果 エクスプローラのハードコピーが貼ってあるが、newDirectories配下のnestDirectoryが正しく作成されたかどうかがこのハードコピーからでは分からない。
p234 Q*102 タイトル メソッド名の誤り:
誤: renamTo
正: renameTo
p273 Q*118 Sample118b.java コンストラクタ中の処理で、new UncaugthExceptionHandlerとあり、一見スペルミスのように見えたが、下にその名前のクラスが定義されていた。
※誤りではないが、分かりづらい。
p282 Q*121 Sample121a.java producer.join()、および、consumer.join()の2行は不要と思われる。後続処理がないのにスレッドの完了を待つ必要はない。
p312 Q*133 Sample133.java isHankakuメソッドに半角カナを渡すとfalseになる。メソッド名が不適切。
p321 Q*139 5行目 ロケールjava.util.Localeクラスに定義されているものが使えますとあるが、java.util.Localeクラスに定義されているもの以外も使える。(Locale l = new Locale("th", "TH"); とか)
※誤りではないが、誤解をまねくと思われる。
p330 Q*144 実行例 オプションの指定ミス:
誤: java -Xms 1024M -Xmx 2048M (実行するクラス名)
正: java -Xms1024M -Xmx2048M (実行するクラス名)
p330 Q*144 2段落目の3行目 -Xmsに指定する値は、1Mバイトより大きい1024の倍数である必要があります。とあるが、1024の倍数である必要はない。(ex: -Xms64mとか)
p344 Q*151 4行目 誤: Mozilla Rihno
正: Mozilla Rhino
p345 Q*151 ファイルよりJavaScriptを読み込む方法 HelloWorld.jsの中身が掲載されていないため、実行結果が正しいのかどうか判断が付かない。
p361 Q*157 4行目 誤: 環境変数のを〜
正: 環境変数を〜
p381 Q*163 メモ Java DB 2段落目の4行目 誤: (本書ではネットワークモードのみ紹介している)
正: (本書では組み込みモードのみ紹介している)

探せばもっとありそう。レビューアとしての能力を磨くにはもってこいの教材かも。