“標準教科書”が完全書き下ろしで11年ぶり新登場!
Javaプログラミングに必要な知識・概念・機能を体系的かつ網羅的に習得!
Java言語の独学に最適な標準教科書として、長年にわたって読まれてきた『独習Java』。プログラミング言語入門書の執筆で定評のある山田祥寛氏による完全書き下ろしで新登場です!
独習シリーズの強みである、手を動かしておぼえる(書いて実行して結果を確認する)特長を生かし、Java開発で必要となる基本的な言語仕様から、標準ライブラリ、コレクション、オブジェクト指向、ラムダ式/Stream API、スレッド、マルチスレッド処理、アノテーション、モジュールまで、サンプルプログラムを例示しながら詳細かつ丁寧に解説します。
プログラミングの基礎知識がない方でも、解説→例題(サンプル)→理解度チェックという3つのステップで、Javaの文法を完全習得できます。
[ポイント]
●Java言語の独学に最適な教科書として好評の『独習Java』最新版。初心者がJava言語を学ぶにふさわしい一冊
●Javaでプログラミングを行う際に必要となる基本的な知識・概念・機能、文法・書き方を、網羅的かつ体系的に習得できる
Java言語の入門者、これからJava言語で開発を始めたい初学者から、再入門者、学生・ホビープログラマまで、
「一からJava言語を学びたい」「Javaプログラミングの基本をしっかり身につけたい」という方におすすめの一冊です。
わかりやすい【解説】
サンプルプログラムを例示しながら詳細かつ丁寧に解説します。
力試しの【練習問題】
各節末にある【練習問題】で、学習した内容を確認できます。
学習成果を確かめる【理解度チェック】
各章末にある【理解度チェック】で、その章で学んだ事項を理解できたか確認できます。
●第1章 イントロダクション
1.1 Javaとは?
1.2 Javaアプリを開発/実行するための基本環境
1.3 Javaプログラミングの基本
●第2章 Javaの基本
2.1 変数
2.2 データ型
2.3 リテラル
2.4 型変換
2.5 参照型
●第3章 演算子
3.1 算術演算子
3.2 代入演算子
3.3 関係演算子
3.4 論理演算子
3.5 ビット演算子
3.6 演算子の優先順位と結合則
●第4章 制御構文
4.1 条件分岐
4.2 繰り返し処理
4.3 ループの制御
●第5章 標準ライブラリ
5.1 ラッパークラス
5.2 文字列の操作
5.3 正規表現
5.4 日付/時刻の操作
5.5 ストリーム
5.6 その他の機能
●第6章 コレクションフレームワーク
6.1 コレクションフレームワークの基本
6.2 リスト
6.3 セット
6.4 マップ
6.5 スタック/キュー
●第7章 オブジェクト指向構文―基本
7.1 クラスの定義
7.2 フィールド
7.3 メソッド
7.4 変数のスコープ
7.5 コンストラクター
7.6 クラスメソッド/クラスフィールド
7.7 引数/戻り値の様々な記法
7.8 パッケージ
●第8章 オブジェクト指向構文―カプセル化/継承/ポリモーフィズム
8.1 カプセル化
8.2 継承
8.3 ポリモーフィズム
●第9章 オブジェクト指向構文―入れ子のクラス/ジェネリクス/例外処理など
9.1 Objectクラス
9.2 例外処理
9.3 列挙型
9.4 入れ子のクラス
9.5 ジェネリクス
●第10章 ラムダ式/Stream API
10.1 メソッド参照/ラムダ式
10.2 Stream API
●第11章 高度なプログラミング
11.1 マルチスレッド処理
11.2 アノテーション
11.3 モジュール
●付録A 「練習問題」「この章の理解度チェック」解答
お問い合わせ
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
利用許諾に関するお問い合わせ
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
ご購入いただいた書籍の種類を選択してください。
刷数は奥付(書籍の最終ページ)に記載されています。
現在表示されている正誤表の対象書籍
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
最終更新日:2024年01月17日
発生刷 |
ページ数 |
書籍改訂刷 |
電子書籍訂正 |
内容 |
登録日 |
1刷 |
009
「● MergeDoc Project」のURL |
未 |
未 |
誤 |
http://mergedoc.osdn.jp/ |
正 |
https://willbrains.jp/ |
備
考 |
記載していたURLが変更されました。
※リフローEPUBの場合、「1.2.2 Eclipseのインストール」内の
「[1]Eclipse(Pleiades)をダウンロードする」に該当箇所があります。 |
|
2024.01.17 |
1刷 |
033
本文3行目 |
4刷 |
済 |
誤 |
まずは(2)を優先して利用することをお勧めします。 |
正 |
まずは(1)を優先して利用することをお勧めします。 |
備
考 |
※リフローEPUBの場合、図2.11のすぐ下の段落が該当箇所になります。 |
|
2022.05.17 |
1刷 |
042
上から12行目 |
4刷 |
済 |
誤 |
5.の予約語とは、 |
正 |
4.の予約語とは、 |
備
考 |
※リフローEPUBの場合、「2.1.2 識別子の命名規則」の4つ目の段落が該当箇所になります。 |
|
2022.05.17 |
1刷 |
077
この章の理解度チェック [2]の問題文 下から2行目 |
3刷 |
済 |
誤 |
[ ① ]で表記できるようになります。 |
正 |
[ ② ]で表記できるようになります。 |
備
考 |
※リフローEPUBの場合、2章の「この章の理解度チェック」の[2]の問題文における、最後から2つ目の空欄の番号が該当箇所になります。 |
|
2021.03.18 |
1刷 |
090
「3.2.2 定数は「再代入できない変数」」下から7行目 |
4刷 |
済 |
誤 |
VALUES = new int[] { 10, 20, 30 }; |
正 |
VALUES = new int[] { 15, 25, 35 }; |
備
考 |
※リフローEPUBの場合、「3.2.2 定数は「再代入できない変数」」の2つ目のコード例(3行のコード)の2行目が該当箇所になります。 |
|
2022.05.17 |
1刷 |
096
本文4~5行目 |
4刷 |
済 |
誤 |
配列1>配列2の場合は1、配列1=配列2の場合は0、配列1<配列2の場合は-1です。 |
正 |
配列1>配列2の場合は正数、配列1=配列2の場合は0、配列1<配列2の場合は負数です。 |
|
2022.11.01 |
1刷 |
102
表3.6 主なビット演算子 >>>演算子の用例 |
3刷 |
済 |
誤 |
10 >>> 2 ➡ 1010 >>> 2 ➡ 0101 ➡ 5 |
正 |
10 >>> 2 ➡ 1010 >>> 2 ➡ 0010 ➡ 2 |
|
2021.03.18 |
1刷 |
119
下から2行目 |
3刷 |
済 |
誤 |
「変数.equale(値)」の |
正 |
「変数.equals(値)」の |
備
考 |
※リフローEPUBの場合、リスト4.9のすぐ下の段落が該当箇所になります。 |
|
2020.11.25 |
1刷 |
141
「この章の理解度チェック」の[4] 2行目 |
4刷 |
済 |
誤 |
「JVM言語」「C#」「Visual Basic」「F#」であれば |
正 |
「JVM言語」、「C#」「Visual Basic」「F#」であれば |
備
考 |
※「JVM言語」の後ろに「、」を追記します。
※リフローEPUBの場合、4章の「この章の理解度チェック」の[4]が該当箇所になります。 |
|
2022.05.17 |
1刷 |
158
「リスト5.16 StrFormat.java」の1行目 |
4刷 |
済 |
誤 |
import java.util.LocalDateTime; |
正 |
import java.time.LocalDateTime; |
|
2022.11.01 |
1刷 |
158
「リスト5.16 StrFormat.java」の③ |
4刷 |
済 |
誤 |
System.out.println(String.format("%.2sです。", "サクラ"));
// 結果:サクです。 |
正 |
System.out.println(String.format("%2sです。", "サクラ"));
// 結果:サクラです。 |
備
考 |
2022.10.21内容を更新いたしました。 |
|
2021.06.04 |
1刷 |
160
「③~⑤文字列の表示幅」1~2行目 |
4刷 |
済 |
誤 |
③は、文字列幅を2と指定しているため、3文字目以降が表示されません。 |
正 |
③は、実際の文字列よりも指定幅が短いので、すべての文字列が表示されます。あくまで最小幅を表すだけで、指定桁で切り捨てられるわけではありません。指定桁で切り捨てたい場合は、「.2」のように引数precを指定してください。 |
備
考 |
※リフローEPUBの場合、リスト5.16のあとに掲載されている、2つ目の小見出し「③~⑤文字列の表示幅」の本文が該当箇所になります。 |
|
2022.11.01 |
1刷 |
160
「①~②シンプルなパターン」 下から1行目 |
4刷 |
済 |
誤 |
(たとえば②であれば、「女の子」に対応すべき「3$」がありません)。 |
正 |
(たとえば②であれば、「女の子」に対応すべき「2$」がありません)。 |
備
考 |
※リフローEPUBの場合、リスト5.16のあとに掲載されている、1つ目の小見出し「①~②シンプルなパターン」の本文が該当箇所になります。 |
|
2022.05.17 |
1刷 |
160
「⑥~⑦整数の場合」 4行目 |
4刷 |
未 |
誤 |
という意味です。 |
正 |
という意味です(⑦)。 |
備
考 |
※リフローEPUBの場合、リスト5.16のあとに掲載されている、3つ目の小見出し「⑥~⑦整数の場合」の本文が該当箇所になります。 |
|
2022.05.17 |
1刷 |
163
表5.6 [X-Z]の「マッチする文字列」 |
4刷 |
済 |
誤 |
X~Yの範囲の中の1文字 |
正 |
X~Zの範囲の中の1文字 |
|
2022.05.17 |
1刷 |
170
1つ目の「note」 上から4行目 |
4刷 |
済 |
誤 |
+(\.[A-Za-z0-9-]+)*" |
正 |
+(\\.[A-Za-z0-9-]+)*" |
備
考 |
※リフローEPUBの場合、リスト5.19の後にある「note」が該当箇所になります。また、\の代わりにバックスラッシュ(\)が表示されます。
+(\\.[A-Za-z0-9-]+)*" |
|
2022.05.17 |
1刷 |
180
練習問題 5.2 [2]下から3行目 |
4刷 |
済 |
誤 |
正規表現で「[a-z_0-9]+([-+.][a-z_0-9]+)*@[a-z_0-9]+([-.][a-z_0-9]+)*\.[a-z_0-9]+([-.][a-z_0-9]+)*」 と表すものとします。 |
正 |
正規表現で「[a-z0-9.!#$%&'*+/=?^_{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9-]+)*」 と表すものとします。 |
|
2022.05.17 |
1刷 |
203
「note」1行目、3行目 |
4刷 |
済 |
誤 |
1行目
newBufferedWriterFilesクラスは、
3行目
try (var writer = new BufferedWriter(new OutputStreamWriter( |
正 |
1行目
newBufferedWriterFilesは、
3行目
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( |
備
考 |
※リフローEPUBの場合、表5.27のあとにある「note」が該当箇所になります。 |
|
2022.11.01 |
1刷 |
206
下から5行目 |
4刷 |
済 |
誤 |
try (var reader = new BufferedReader(new InputStreamReader( |
正 |
try (BufferedReader reader = new BufferedReader(new InputStreamReader( |
備
考 |
※リフローEPUBの場合、「5.5.2 テキストファイルを読み込む」の「構文」の下にあるコード例が該当箇所になります。 |
|
2022.11.01 |
1刷 |
210
リスト5.49 Article.java 下から7行目 |
3刷 |
済 |
誤 |
public Article(String title, String url) { |
正 |
public Article(String title, String url, boolean expired) { |
|
2021.03.12 |
1刷 |
232
構文 コレクションのインスタンス化 |
未 |
未 |
誤 |
インターフェイス型<要素型>=new実装クラス型<>(引数, ・・・) |
正 |
インターフェイス型<要素型>変数名=new実装クラス型<>(引数, ・・・) |
|
2023.07.06 |
1刷 |
260
図6.9の中央 |
4刷 |
済 |
誤 |
[17] |
正 |
[21] |
備
考 |
修正後のツリーの同じレベルは、左から[5][15][21][30]になります。 |
|
2022.11.01 |
1刷 |
263
本文下から1行目 |
3刷 |
済 |
誤 |
表6.10は、NabigableMapの主なメンバーです。 |
正 |
表6.10は、NavigableMapの主なメンバーです。 |
備
考 |
以下の箇所に記載している「NabigableMap」も「NavigableMap」に修正いたします。
・263ページ 表6.10の見出し
・597ページ 索引「C」ceilingEntry() と ceilingKey()
・598ページ 索引「F」floorEntry() と floorKey()
・599ページ 索引「H」headMap() と higherEntry() と higherKey()
・600ページ 索引「L」lowerEntry()
・603ページ 索引「T」tailMap()
※リフローEPUBの場合、表6.10のすぐ上の1行、および表6.10の表タイトルが該当箇所になります。その他は上記リストをもとに、巻末にある「検索キーワード」をご覧ください。 |
|
2021.03.12 |
1刷 |
283
図7.3、図7.4 |
4刷 |
済 |
誤 |
図7.3
(画像クリックで拡大)
図7.4
(画像クリックで拡大) |
正 |
図7.3
(画像クリックで拡大)
図7.4
(画像クリックで拡大) |
備
考 |
「Get」と「Draw」の頭文字をそれぞれ小文字に修正します。 |
|
2022.11.01 |
1刷 |
285
リスト7.6 1行目 |
4刷 |
済 |
誤 |
public void Show() { |
正 |
public void show() { |
備
考 |
「Show」の頭文字を小文字に修正します。 |
|
2022.11.01 |
1刷 |
288
9~10行目、12~13行目 |
4刷 |
済 |
誤 |
9~10行目
public int IndexOf(string value)
public double IndexOf(string value)
12~13行目
public int IndexOf(string value)
public int IndexOf(string str) |
正 |
9~10行目
public int indexOf(string value)
public double indexOf(string value)
12~13行目
public int indexOf(string value)
public int indexOf(string str) |
備
考 |
「Index」の頭文字をそれぞれ小文字に修正します。
※リフローEPUBの場合、「7.3.6 メソッドのオーバーロード」の「ただし、以下のようなコードは」で始まる段落以降にある2つのコード例が該当箇所になります。 |
|
2022.11.01 |
1刷 |
309
リスト7.26 下から3行目 |
2刷 |
済 |
誤 |
return this.instance; |
正 |
return instance; |
|
2019.12.12 |
1刷 |
394
表9.2の下の本文 1行目 |
4刷 |
済 |
|
2022.11.01 |
1刷 |
395
「リスト9.4 EqualsBasic.java(chap09.equalsパッケージ)」の下 本文1行目 |
3刷 |
済 |
誤 |
Personクラスのequalsメソッドではtitleフィールドを無視して比較するので、 |
正 |
Personクラスのequalsメソッドではdepartmentフィールドを無視して比較するので、 |
|
2021.03.12 |
1刷 |
422
「9.2.6 例外の再スロー」14~15行目 |
4刷 |
済 |
誤 |
捕捉した例外をそのままスローするだけならば、引数を省略して「throw;」と書いても同じ意味です。 |
正 |
上記の文章を削除します。 |
|
2022.11.01 |
1刷 |
437
リスト9.34、図9.11 |
4刷 |
済 |
誤 |
リスト9.34
(画像クリックで拡大)
図9.11
(画像クリックで拡大) |
正 |
リスト9.34
(画像クリックで拡大)
図9.11
(画像クリックで拡大) |
備
考 |
「INSENTIVE」を「INSENSITIVE」に修正します。 |
|
2022.11.01 |
1刷 |
452
リスト9.43 2行目 |
4刷 |
済 |
誤 |
public int Hoge(T x, T y) { |
正 |
public int hoge(T x, T y) { |
備
考 |
「Hoge」の頭文字を小文字に修正します。 |
|
2022.11.01 |
1刷 |
547
「コンパイラーの警告を抑制する― @SuppressWarnings」の本文最終行 |
4刷 |
済 |
誤 |
表11.6の通りです。 |
正 |
表11.6の通りです(利用しているコンパイラーによって異なります)。 |
備
考 |
※リフローEPUBの場合、表11.6のすぐ上の段落が該当箇所になります。 |
|
2022.11.01 |
1刷 |
548
表11.6 |
4刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
備
考 |
「誤」の最終行は削除します。 |
|
2022.11.01 |
1刷 |
582
「付録A」第3章の解答 練習問題 3.2 [2]の解答 |
2刷 |
済 |
|
2019.12.12 |
1刷 |
582
「付録A」第3章の解答 「この章の理解度チェック p.107」の[2] 4行目 |
4刷 |
済 |
誤 |
値型と参照型とで |
正 |
基本型と参照型とで |
備
考 |
※リフローEPUBの場合、「付録A」第3章の解答の「この章の理解度チェック」の[2]の説明文が該当箇所になります。 |
|
2022.05.17 |