---
title: これからJavaを勉強する人が読むと良い本
tags: ["Book", "Java", "Review"]
categories: ["Book", "Programming", "Java"]
date: 2011-04-26T15:53:10Z
updated: 2014-07-29T15:25:52Z
---

(2年ぶりに更新した)

かなり主観はいっています。もしかしてオブジェクト指向は軽く理解していることが前提になっているかもしれません。

### 入門編

#### パーフェクトJava
Javaの基本を一通り勉強したいならこれ。「やさしいJava」とか読んでも使い物になりません。<br>
一通り説明している上に個々の説明が詳細なので(例えばjava.util.Listの実装クラスは内部がこういう構造だからこういうときにはこれを使うとか)、
基礎作りに最適。

<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774139904/ikam-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51sc1ff5eML._SL160_.jpg" alt="パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)" style="border: none;" /></a>

#### Effective Java
Javaのコードを書く上で最低限知っておかなければ行けないことが詳細に書かれています。この本のアンチパターンとして紹介されているコードを書くとぷぎゃーっとされても仕方なし。これを読んでいない人はモグリと言っても過言ではない。

<a href="http://www.amazon.co.jp/EFFECTIVE-JAVA-%E7%AC%AC2%E7%89%88-Java-Series/dp/4621066056%3FSubscriptionId%3DAKIAJ7Y2FDFBWLT5HCQA%26tag%3Dikam-22%26linkCode%3Dsp1%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4621066056"><img src="http://ecx.images-amazon.com/images/I/51lEBnUjJqL._SL160_.jpg" title="EFFECTIVE JAVA 第2版 (The Java Series)"></a>

#### Java逆引きレシピ

<a href="http://www.amazon.co.jp/Java%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AC%E3%82%B7%E3%83%94-%E7%AB%B9%E6%B7%BB-%E7%9B%B4%E6%A8%B9/dp/4798122386%3FSubscriptionId%3DAKIAJ7Y2FDFBWLT5HCQA%26tag%3Dikam-22%26linkCode%3Dsp1%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798122386"><img src="http://ecx.images-amazon.com/images/I/51zd4FgU2gL._SL160_.jpg" title="Java逆引きレシピ"></a>

著者買い。

### マルチスレッド編
#### Java並行処理プログラミング

Javaをやっていたら必ずマルチスレッドなプログラムに関わると言っていいと思います。スレッドなんて自分で作らないから関係ないぜって思っている人、多分気づかずにスレッドアンセーフなプログラムを書いているでしょう。スレッドセーフなプログラムを書くには、java.util.concurrentパッケージを使ってうまく並行処理を書くにはどうすればいいかを学べます。フレームワークとか作る人は必修。

<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797337206/ikam-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/511lSU4bcXL._SL160_.jpg" alt="Java並行処理プログラミング ―その「基盤」と「最新API」を究める―" style="border: none;" /></a>

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

「Java並行処理プログラミング」の敷居が高い場合はこっちから入るといいです。ただし、java.util.concurrentパッケージを使っていないし、書き方が少し古いのでコードはあんまりまねない方がいいかもです。

<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797331623/ikam-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/41R9eyP8jNL._SL160_.jpg" alt="増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編" style="border: none;" /></a>


#### Spring編
<s>Springは良い日本語書籍はありません。。</s> -> Spring3入門が発売されました！

#### Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ

<a href="http://www.amazon.co.jp/exec/obidos/ASIN/477415380X/ikam-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/5174QnHv0QL._SL160_.jpg" alt="Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ" style="border: none;" /></a>

書評は[こちら][1]

#### Pro Spring 3

出ましたSpring3本の決定版！1000ページ近くあり、かなりのボリュームですが、
その分、かなり網羅されています。3.1系で説明されており、3.1の機能もふまえた上で
最適な使用方法を選んでいる等、サンプルも鮮麗されています。

Blogアプリケーションを作りながら学ぶことで一通り身につけられるのではないでしょうか。

<a href="http://www.amazon.co.jp/exec/obidos/ASIN/1430241071/ikam-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51Z4hwQl90L._SL160_.jpg" alt="Pro Spring 3 (Professional Apress)" style="border: none;" /></a>

### JavaEE編

#### Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava
ようやく出ました、JavaEE6の和書。JavaEEの主要技術である
JPA、EJB、JSF、JMS、JAX-WS、JAX-RSを一通り学べる本。
自分も翻訳・監訳に携わりました。

読み返して残念なのはやはりCDIについての説明がないこと。CDIがあればアプリケーションの書き方も変わってくるので、JavaEE6を普及していく上で、説明がないのはかなり痛いと思われます。（付録のハンズオンラボでは空気読まず使っていますが、、）

<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798124605/ikam-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/517MsPjZfvL._SL160_.jpg" alt="Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava (Programmer’s SELECTION)" style="border: none;" /></a>



### コーディング規約編

#### Javaルールブック　～読みやすく効率的なコードの原則
いっていることが全てうんうんとうなずける。全開発者が一冊もつべき。

<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774145475/ikam-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51jRJJ2jLRL._SL160_.jpg" alt="Javaルールブック　～読みやすく効率的なコードの原則" style="border: none;" /></a>

<hr>
思いついたら追記します。ご意見等があれば[@making][2]まで

<table class="table table-bordered">
<tr>
  <th>更新日</th>
  <th>更新内容</th>
</tr>
<tr>
  <td>2014/07/30</td>
  <td>・「Java逆引きレシピ」追加<br>
         ・「Javaフレームワーク開発入門」、「ソースコードリーディングから学ぶ Javaの設計と実装」、「Pro Spring MVC」、「Seasar徹底入門」、「StrutsによるWebアプリケーションスーパーサンプル」、「現場で使えるJavaライブラリ」を削除</td>
</tr>
<tr>
  <td>2012/11/03</td>
  <td>・「Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ」追加<br>
         ・「Pro Spring2.5」、「Spring in Action」、「Spring Recipes」、「SpringによるWebアプリケーションスーパーサンプル」を削除</td>
</tr>
<tr>
  <td>2012/05/16</td>
  <td>・今更「StrutsによるWebアプリケーションスーパーサンプル」を追加<br>
         ・「Pro Spring3」、「Pro Spring Mvc: With Web Flow」、「Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava」を追加<br>
         ・「Pro Spring2.5」、「Spring in Action」、「Spring Recipes」、「SpringによるWebアプリケーションスーパーサンプル」をDeprecatedに
   </td>
<tr>
  <td>2011/07/29 </td>
  <td>「現場で使えるJavaライブラリ」追加。</td>
</tr>
</table>


  [1]: http://blog.ik.am/entry/view/id/154/title/%E3%80%8CSpring3%E5%85%A5%E9%96%80%20%E2%80%95%E2%80%95Java%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%BB%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E8%A8%AD%E8%A8%88%E3%81%A8%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%80%8D%E3%82%92%E8%AA%AD%E3%82%93%E3%81%A0%E6%84%9F%E6%83%B3/
  [2]: http://twitter.com/making
