ページ更新: 2009-11-30 (月) (3519日前)

関連: Java, eclipse

購入した書籍、Java編。

目次

[編集]

2009 #

[編集]

Filthy Rich Clients アニメーションとグラフィカルエフェクトを使ったデスクトップJavaアプリケーション (2009-11-12) #

株式会社ピアソン・エデュケーション, 2008-11-25 初版第1刷, 5,400円 + 税

[編集]

p.534, ImageHolderクラスに1行不足あり、画像品質と性能が低下している? #

2009-11-30

第18章, p.534, ImageHolderクラス, コンストラクタ内のwhile ループの末尾の1行が不足?

  • このコードでは、たぶん「プログレッシブバイリニアスケーリング」(p.109-117) を用いているらしい。 しかし、★行が無いので、プログレッシブバイリニアスケーリングではない。常にoriginalImageから縮小している。 よって、画像品質とパフォーマンスが低下しているようだ。
  • p.115 getFasterScaledInstance() では、p.117の } while(...) の直前の ret = scaledImage; にて、★の処理を行っている。
  • とはいえ、パフォーマンスにはほとんど影響を与えていない:縮小方法がバイリニアなので。
    • 7000×10000の画像であっても、所要時間は1%しか変わらなかった。(Core2 Quad Q6700, Java 6u17)
    • ★行なし: 所要時間 920.315056 ms
    • ★行あり: 所要時間 911.222948 ms
    • 速度の低下からこの問題を見つけるのは困難である。
   ImageHolder(BufferedImage originalImage) {
       int imageW = originalImage.getWidth();
       int imageH = originalImage.getHeight();
       scaledImages.add(originalImage);
       BufferedImage prevImage = originalImage;    // (1)prevImageへの代入
       while (imageW > MIN_SIZE && imageH > MIN_SIZE) {
           imageW = imageW >> 1;
           imageH = imageH >> 1;
           BufferedImage scaledImage = new BufferedImage(imageW, imageH,
                   prevImage.getType());
           Graphics2D g2d = scaledImage.createGraphics();
           g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                   RenderingHints.VALUE_INTERPOLATION_BILINEAR);
           g2d.drawImage(prevImage, 0, 0, imageW, imageH, null);
           g2d.dispose();
           scaledImages.add(scaledImage);
           prevImage = scaledImage;  // ★この行がないので、(1)により、常にoriginalImageから縮小画像を作る
       }
   }

原書のWebサイトから入手できるソースコードも、★行が不足している。(2009-11-30)

[編集]

Effective Java 第2版 (2009-11-12) #

株式会社ピアソン・エデュケーション, 2009-09-30 第2版第4刷

[編集]

エンジニアのためのJavadoc再入門講座 現場で使えるAPI仕様書の作り方 (2009-07-24) #

以下の資料も参照のこと:

[編集]

Apache Maven 2.0入門 Java・オープンソース・ビルドツール (2009-04-24) #

Maven2本体のことを詳しく解説している。もう少しプラグインとpom.xmlの例があるとうれしいが、プラグインに依存するからなあ。

[編集]

2008 #

[編集]

2007 #

[編集]

Java並行処理プログラミング (2007-02-24, 2009-11-26) #

Java Concurrency in practice の翻訳書。

ソフトバンククリエイティブ, 2006-11-27 初版発行

[編集]

2006 #

[編集]

開発のプロが教える標準FindBugs完全解説 (2006-11-03) #

2006-11-03 購入。自分のため、というよりは啓蒙用に。

2006-05-28

  • 立ち読みした。FindBugsが指摘するバグパターン、バグパターンが問題とするコード、修正方法を解説している。
    • 少なくともEffective Javaの内容は押さえておかないと太刀打ちできないと思う。たぶん。
  • 残念ながら、FindBugsのバグパターンを自分で作成する方法は載ってなかった。
    • さすがにそこまで手を広げるのも難しいだろうし、本の主題がぼやけるだろうから、無理もないけど。
    • developerWorksの記事にたよるか‥‥。
[編集]

Java Concurrency in practice (2006-07-01) #

(May 9, 2006)

Amazon.com
http://www.amazon.com/dp/0321349601

Amazon.co.jp
http://www.amazon.co.jp/dp/0321349601

  • 2006-11-21 和訳が出版されるようだ:

Java並行処理プログラミング ―その「基盤」と「最新API」を究める (2006/11/22)
Amazon.co.jp
http://www.amazon.co.jp/dp/4797337206/

[編集]

2005 #

[編集]

アスペクト指向入門 (2005-12-18) #

Amazon.co.jp http://www.amazon.co.jp/dp/4774125814

[編集]

Java魂 (2005-05-24) #

オライリージャパン, 2004/10

Amazon.co.jp: 本: Java魂 ― プログラミングを極める匠の技
http://www.amazon.co.jp/dp/4873112079

oreilly.co.jp -- Online Catalog: Java魂
http://www.oreilly.co.jp/books/4873112079/

oreilly.com -- Online Catalog: Hardcore Java
http://www.oreilly.com/catalog/hardcorejv/

[編集]

メモ #

2005-05-25 以下の部分まで読んだ。

  • はじめに
    • URLを抜き出して、↑に貼った。
  • 1.Javaの復習
    以下のトピック以外は自分のスタイルと同じだった。
    • 1.2.5 assert (使ってない)
    • 1.2.7 初期化の p.29 のInitializer block (知らなかった。使ったことない。static initializer blockは割と使うのだけど。)

2005-05-26 12章 Tiger: JDK 5.0

p.289 for-each構文 で、iter.next()を2箇所で使うのはちょっとわかりにくい:

Iterator iter = people.iterator();
for (String person = (String)iter.next(); iter.hasNext(); person = (String)iter.next()) {
  :
}

JDK 1.4の例だからこのままでもいいのだろうけど、1章にあるように次のようにしたい:

for (Iterator iter = people.iterator(); iter.hasNext();) {
  String person = (String)iter.next()
  :
}

JDK 5.0 だとこうなるだろうから、いずれにせよ、シンプルにはなるのだが:

for (String person: people) {
  :
}

p.291 12.2.1.1 暗黙のキャスト

コメントの「1番目」「2番目」「3番目」は間違ってると思う。(逆順が正解?)

このような間違いの原因の考察:

サンプルコードのメソッドは次のようになっている。

someMethod(final Object obj) {

someMethod(final String obj) {

someMethod(final Integer obj) {

ここで、引数名がすべてobjなので、obj→Object、と連想してしまったのだと思う。
そこで、引数名を次のように別々の名称にしたり:

someMethod(final Object object) {

someMethod(final String string) {

someMethod(final Integer integer) {

あるいは引数名を、型名を連想しない名称にしたり:

someMethod(final Object value) {

someMethod(final String value) {

someMethod(final Integer value) {

これで、少しは防げるかもしれない。

2005-05-27

for (int i = 0, s = array.size(); i < s; i++) {

に以下にようにはfinalがつけられないのが残念だ。解決方法はないものだろうか?

for (int i = 0, final s = array.size(); i < s; i++) {

for (int i = 0, final int s = array.size(); i < s; i++) {

Collectionなら次のようにできるのになあ。

for (final Iterator iter = collection.iterator(); iter.hasNext();) {
  String person = (String)iter.next()
  :
}

2005-05-28

finalを追加できる場所

  • メソッドの引数
  • for (Iterator i = collection.iterator();...)のIteratorの前。
  • catch (Exception e)... のExceptionの前
  • インスタンスを作って、それを使う場面
    final StringBuffer buffer = new StringBuffer(); buffer.append(....

finalを使わない方がよい場所

  • Interfaceのメソッド(煩雑、シグネチャに影響しないので意味がない)
  • abstractのメソッド(〃)

finalをつける手間がかかるもの

  • eclipseで自動生成したgetter/setterに手を加えず使っているとき。
[編集]

[MacOSX] プログラミングMac OS X for Java Geeks (2005-05-24) #

オライリージャパン, 2003/08

Amazon.co.jp: 本: プログラミングMacOS X for Java Geeks
http://www.amazon.co.jp/dp/4873111447

  • Mac OS XでJava。
  • リソースバンドルを知りたくて、でもさほど優先度が高くないので英語を読む気にならず、 で、買った本。
[編集]

コアJava2 Vol.1 基礎編 (2005-01-29) #

Amazon.co.jp

Core Java Web Page
http://www.horstmann.com/corejava.html

  • 著者のページ。
[編集]

[5.0] Java 5.0 Tiger (2005-03-20) #

Amazon

oreilly.com -- Online Catalog: Java 5.0 Tiger: A Developer's Notebook
http://www.oreilly.com/catalog/javaadn/

Index of /javaadn
http://examples.oreilly.com/javaadn/

  • サンプルコードのダウンロード

oreilly.co.jp -- Online Catalog: Java 5.0 Tiger
http://www.oreilly.co.jp/books/4873112141/

Amazon.com: Books: Java 5.0 Tiger : A Developer's Notebook
http://www.amazon.com/dp/0596007388

[編集]

[SWT] Swt: The Standard Widget Toolkit Volume 1 (2005-01-29) #

  • Addison-Wesley Professional (June 28, 2004)

Amazon.co.jp

Amazon.com

  • カスタマーレビューはこちらを。

Addison-Wesley

SWT: The Standard Widget Toolkit, Volume 1 - $34.99

  • サンプルソースコードの入手は「Source Code」のリンクをクリック。
    • 章ごとにディレクトリが分けられているが、ちゃんとパッケージ名をつけてあるので そのままコンパイルできそう。
[編集]

[組み込み] Javaモバイルアプリケーション - J2MEで実現するユビキタス・コンピューティング (2005-01-11) #

  • 目次を見て、CLDC以外についても書かれていたので、Amazonで注文。
  • 2004年10月時点の、J2MEの現在の状況についての解説。現状を日本語で知るにはとてもよい資料だと思う。
  • OSGiについても触れられている。(2005-09-15)

Amazon.co.jp

出版社 ソフト・リサーチ・センター - 検索結果 Javaモバイルアプリケーション

  • 出版社 ソフト・リサーチ・センターのページ。目次あり。
[編集]

[SWT] The Definitive Guide to SWT and JFACE (2005-01-11) #

  • Apress; 1 edition (June 21, 2004)
  • カスタマーレビューはAmazon.comを見るべし。

Amazon.co.jp

Amazon.com

書籍のソースコードは Apress downloadから書名を選択、 Supplement Downloadで ダウンロードできる。

[編集]

2004 #

[編集]

[Eclipse] Eclipseプラグイン開発 (2004-12-24) #

  • ソフトバンク・パブリッシング (2004/12/22)
  • Addison-Wesley Professional; 1st edition (October 31, 2003)
  • 帯には「デザインパターンを通してEclipseの内部構造を理解しテスト駆動でプラグインを開発するために」とある。
  • EclipseプラグインやRCPではなく、スタンドアロンでSWT/JFaceを使うならさほど参考にならないかも。

Amazon.co.jp

ソフトバンクパブリッシング

Eclipseプラグイン開発 (著者のページ)
http://www.asahi-net.or.jp/~yf8k-kbys/eclipse.html

2003/10/01 発売の以下の本の訳本。原書は Eclipse 2.1 を使っている。 訳出に当たって、サンプルは Eclipse 3.0.1 でコンパイルできるよう修正したとのこと。

Contributing to Eclipse: Principles, Patterns, and Plug-Ins - $29.99
http://www.awprofessional.com/titles/0321205758/

Amazon.co.jp: 洋書: Contributing to Eclipse: Principles, Patterns, and Plug-Ins
http://www.amazon.co.jp/dp/0321205758
http://www.amazon.com/dp/0321205758

[編集]

[Web] Jakarta Strutsデスクトップリファレンス (2004-11-20) #

Amazon.co.jp

[編集]

[Eclipse] Eclipseパーフェクトマニュアル Vol.4 (2004-11-05) #

  • Eclipse 3.0, Hyades, AcpectJ, プラグインカタログGUI編・日本発編

Amazon.co.jp

Eclipseパーフェクトマニュアル
http://www.gihyo.co.jp/magazines/eclipse

[編集]

コアJava2 Vol.2 応用編 (2004-10-09) #

Amazon.co.jp

  • Swing について知るために購入。
    • 可能なら、SWT や Delphi、Windowsのメッセージのモデルとの比較からSwingを 学びたいと思ってるのだが‥‥そういう本や記事は存在しないだろうから‥‥。

Core Java Web Page
http://www.horstmann.com/corejava.html

[編集]

[Web] 軽快なJava - Better, Faster, Lighter Java (2004-10-10) #

www.oreilly.co.jp -- オライリー・ジャパン -- 近刊案内
http://www.oreilly.co.jp/catalog/soon.shtml

Amazon.co.jp

[編集]

攻略 Jakarta Commons (2004-08-30) #

  • 店頭で他の本を探していて見かけて購入。CLI, Codec が載ってるのは珍しいと 思ったし、出版日がごく最近だったので。

Amazon.co.jp

攻略 Jakarta Commons
http://www.sbpnet.jp/books/products/detail.asp?sku=4797325208

メモ

  • p.40 2005-02-10 hashInitialとhashMultiplier にMath.random()を使うのは、以下の点で使いにくいと思う。
    • 毎回値が異なるため、性能がまちまちになる。
    • たぶんクラスローダが異なると違う値が出るので、hashCode()の原則 (a.equals(b)を満たす aとbのhashCode()は同値にする)に違反する。
[編集]

[Tool] Apache Ant (2004-04-01) #

http://www.amazon.co.jp/dp/4774120006

  • 関口 宏司, 技術評論社, 2004.04
  • ソフトバンクの「Apache Ant 入門」より詳しい。 特にパターン、セット、セレクタ、マッパーについて詳しく書いてあるのはよい。
[編集]

[ネットワーク] Javaネットワーク&ストリーム完全制覇 (2004-02-28) #

Amazon.jp

  • 中身を調べずに、Amazon.jp で他の本のついでに購入した本。nio について、 JavaDoc より実践的な例を見たかったが、sun の資料を見るのも面倒だったので。 10ページくらい役に立てばよいかと思って購入。
  • Java 初心者〜初級者レベルの本。書名が「〜完全制覇」ではなく「〜入門」であれば、 いいんだけどな。
  • もう少し例があれば。例えば、FilterInputStream, FilterOutputStream, FilterReader, FilterWriter の実装例が欲しい。例がないと、JavaDoc 見るのとさほど変わらなくなってしまう。
[編集]

2003 #

[編集]

[ツール] JavaデベロッパーのためのApache Ant入門 (2003-11-09) #

  • 宮本信二 著 / ソフトバンクパブリッシング / B5変型判 242ページ / 定価:本体\2,400+税 / 4-7973-2518-6 / 2003/10/31発売
  • 同じ装丁でeclipse本もある。

http://muimi.com/etc/ant_book/ Amazon SBPストア cbook24.com

[編集]

[SWT] Java GUI プログラミング SWT編 (2003-08-20) #

  • カットシステム (2003/07)
  • この時期にいち早くSWTの本を出したのはすごい。
  • 必須、な本ではない。まあ、他に日本語で SWT の本ないし。
  • JFace のことは書かれていない。
  • 中身のソースコードは省略なしに書いてあるので、いっけん必要な部分だけ読めばいいように見えるが、 割と重要な情報がそこここに散らばっているため、頭から全部読む羽目になる。
  • 最初からいきなり SWT のクラスごとの説明が始まる。 最初にソースコードを読んだほうが理解しやすい人のための本かと。
  • SWTの構造や背景、特色についてはまとまった説明がない。 まあ、SWTに興味を持つ人は、Eclipse のヘルプや eclipse.org や developerWorks や その他のコンテンツを眺めてるだろうから、これでもよいのだろうと思う。

カットシステム

  • 目次 あり

Amazon.co.jp

[編集]

[ネットワーク] TCP/IP ソケットプログラミング Java編 (2003-05-25) #

  • 「TCP/IP Sockets in Java : Practical Guide for Programmers」の訳本。 姉妹書に「TCP/IP Sockets in C」がある。
  • 内容はわかりやすく、分量も適切。
  • J2SE 1.3 が対象。よって、java.nio.* 系については触れられていない。

Amazon
http://www.amazon.co.jp/dp/4274065200

Ohmsha オーム社 TCP/IPソケットプログラミング Java 編
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06520-0

  • 目次、サンプルコード、原出版社と原著者のページへのリンク。
  • なお、C言語版もわかりやすい。perl で Socketを扱うときに参考にした。

Amazon TCP/IPソケットプログラミング C言語編

[編集]

2002以前 #

[編集]

Effective Java : プログラミング言語ガイド #

参考: equals(Object), toString(), hashCode(), compareTo(Object) 作成支援

[編集]

Java言語で学ぶ デザインパターン入門 #

書籍付属のコード http://www.hillside.net/patterns/DPBook/Source.html

増補改訂版Java言語で学ぶデザインパターン入門
http://www.hyuki.com/dp/

Amazon.co.jp
http://www.amazon.co.jp/dp/4797316462

[編集]

[Webサービス] Java による Web サービス構築 (2002-11-01) #

  • 「Building Web Services with Java : Making Sense of XML, SOAP, WSDL, and UDDL」 の訳本。
[編集]

Javaプラットフォームパフォーマンス - コードレベルのチューニングと開発プロセスへの統合 #

[編集]

Java言語で学ぶデザインパターン入門 - マルチスレッド編 #

増補改訂版 Java言語で学ぶデザインパターン入門マルチスレッド編

[編集]

Java言語で学ぶデザインパターン入門 #

[編集]

JBuilder 4によるインターネットアプリケーション構築入門 #

[編集]

プログラミング言語Java 第3版 #

「プログラミング言語Java第3版」正誤表
http://www02.so-net.ne.jp/~yshibata/jplerrata.html

[編集]

最新オブジェクト指向技術応用実践 - Javaによるビジネスアプリケーション開発モデルと実践技法 #

著:萩本 順三、福村 真奈美、不破 康人 / エーアイ出版、1998年1月25日 第1版第1刷