書籍詳細(独習Java 第6版)

独習Java 第6版 書影

ISBN: 978-4-7981-8094-6

独習Java 第6版

山田祥寛 著

著者山田祥寛
出版社翔泳社
価格2,980円(税別)
判形B5変版・2色
ページ数672ページ
発売日2024年2月15日
シリーズ 独習
対象レベル初中級

「標準教科書」がJava 21対応の最新版で登場!

初心者がJava言語を学ぶにふさわしい解説書。Javaの基本的な知識・概念・機能はもちろん、文法、プログラムの書き方を豊富なサンプルプログラムとともに、詳細かつ丁寧に解説。プログラミングの基礎知識がない方でも、解説→例題(サンプル)→理解度チェックという3つのステップで、Javaの文法を完全習得。初学者から、再入門者、学生・ホビープログラマまでおすすめの一冊。
独習Java 第6版 ロゴ

更新履歴

  • 正誤訂正:2025年9月23日 更新

目次

  • 第1章 イントロダクション
  • 第2章 Javaの基本
  • 2.1 変数
  • 2.1.1 変数の宣言
  • 2.1.2 識別子の命名規則
  • 2.1.3 よりよい識別子のためのルール
  • 2.1.4 定数
  • 2.2 データ型
  • 2.2.1 データ型の分類
  • 2.2.2 基本型の種類
  • 2.2.3 整数型
  • 2.2.4 浮動小数点
  • 2.2.5 文字型
  • 2.2.6 真偽型
  • 2.2.7 型推論
  • 2.3 リテラル
  • 2.3.1 整数リテラル
  • 2.3.2 浮動小数点数リテラル
  • 2.3.3  補足 型サフィックスと区切り文字
  • 2.3.4 文字リテラル
  • 2.3.5 文字列リテラル
  • 2.4 型変換
  • 2.4.1 暗黙的な変換
  • 2.4.2 明示的な変換(キャスト)
  • 2.5 参照型
  • 2.5.1 クラス型
  • 2.5.2 配列型
  • この章の理解度チェック
  • 第3章 演算子
  • 3.1 算術演算子
  • 3.1.1 非数値が混在する演算
  • 3.1.2 + 演算子による文字列結合
  • 3.1.3 インクリメント演算子/デクリメント演算子
  • 3.1.4 除算とデータ型
  • 3.1.5 浮動小数点数の演算には要注意
  • 3.2 代入演算子
  • 3.2.1 基本型/参照型による代入
  • 3.2.2 定数は「再代入できない変数」
  • 3.3 関係演算子
  • 3.3.1 同一性と同値性
  • 3.3.2 浮動小数点数の比較
  • 3.3.3 配列の比較
  • 3.3.4 オートボクシングされた値の比較
  • 3.3.5 条件演算子
  • 3.4 論理演算子
  • 3.4.1 ショートカット演算(短絡演算)
  • 3.5 ビット演算子
  • 3.5.1 ビット論理演算子
  • 3.5.2 ビットシフト演算子
  • 3.6 演算子の優先順位と結合則
  • 3.6.1 優先順位
  • 3.6.2 結合則
  • この章の理解度チェック
  • 第4章 制御構文
  • 4.1 条件分岐
  • 4.1.1 if命令―単純分岐
  • 4.1.2 if命令―多岐分岐
  • 4.1.3 if命令―入れ子構造
  • 4.1.4  補足 中カッコは省略可能
  • 4.1.5 switch 命令
  • 4.1.6 switch 式[14]
  • 4.1.7 switch によるパターンマッチング[21]
  • 4.2 繰り返し処理
  • 4.2.1 while/do...while 命令
  • 4.2.2  補足 無限ループ
  • 4.2.3 for 命令
  • 4.2.4 拡張for 命令
  • 4.3 ループの制御
  • 4.3.1 break 命令
  • 4.3.2 continue 命令
  • 4.3.3 入れ子のループを中断/スキップする
  • この章の理解度チェック
  • 第5章 標準ライブラリ
  • 5.1 ラッパークラス
  • 5.1.1 基本型⇔ラッパーオブジェクトの変換―ボクシング/アンボクシング
  • 5.1.2 数値⇔文字列の変換
  • 5.2 文字列の操作
  • 5.2.1 文字列の長さを取得する
  • 5.2.2 文字列を比較する
  • 5.2.3 文字列が空であるかを判定する
  • 5.2.4 文字列の前後から空白を除去する
  • 5.2.5 文字列を検索する
  • 5.2.6 文字列に特定の文字列が含まれるかを判定する
  • 5.2.7 部分文字列を取得する
  • 5.2.8 文字列を特定の区切り文字で分割する
  • 5.2.9 文字列を整形する
  • 5.2.10 文字列テンプレートによる文字列フォーマット[21 Preview]
  • 5.3 正規表現
  • 5.3.1 正規表現の基本
  • 5.3.2 文字列が正規表現パターンにマッチしたかを判定する
  • 5.3.3 正規表現で文字列を検索する
  • 5.3.4 正規表現オプションでマッチング時の挙動を制御する
  • 5.3.5  例 正規表現による検索
  • 5.3.6 正規表現で文字列を置換する
  • 5.3.7 正規表現で文字列を分割する
  • 5.4 日付/時刻の操作
  • 5.4.1 日付/時刻オブジェクトを生成する
  • 5.4.2 日付/時刻を比較する―equals/isBefore/isAfter メソッド
  • 5.4.3 年月日、時分秒などの時刻要素を取得する
  • 5.4.4 日付/時刻値を整形する
  • 5.4.5 日付/時刻値の差分を取得する
  • 5.4.6 日付を加算/減算する
  • 5.4.7 Java 7 以前の日付/時刻操作
  • 5.4.8 Date-Time API ⇔ Calendar の相互変換
  • 5.5 ストリーム
  • 5.5.1 テキストをファイルに書き込む
  • 5.5.2 テキストファイルを読み込む
  • 5.5.3 バイナリファイルの読み書き
  • 5.5.4 オブジェクトのシリアライズ
  • 5.6 その他の機能
  • 5.6.1 数学演算―Math クラス
  • 5.6.2 long 型以上の整数を演算する―BigInteger クラス
  • 5.6.3 乱数を生成する―Random クラス
  • 5.6.4 数値を整形する―NumberFormat クラス
  • 5.6.5 配列を操作する―Arrays クラス
  • 5.6.6 文字列をUnicode 正規化する
  • 5.6.7 ファイルシステムを操作する―Files クラス
  • 5.6.8 HTTP経由でコンテンツを取得する―HttpClient クラス
  • この章の理解度チェック
  • 第6章 コレクションフレームワーク
  • 6.1 コレクションフレームワークの基本
  • 6.1.1 コレクションの基本構文
  • 6.1.2 コーディング上のイディオム
  • 6.1.3 特殊なコレクションの生成
  • 6.2 リスト
  • 6.2.1 ArrayList(サイズ可変の配列)
  • 6.2.2 LinkedList(二重リンクリスト)
  • 6.3 セット
  • 6.3.1 セットの基本操作
  • 6.3.2 TreeSet(ソート済みセット)
  • 6.4 マップ
  • 6.4.1 HashMap(ハッシュ表)
  • 6.4.2 TreeMap(ソート済みマップ)
  • 6.5 スタック/キュー
  • 6.5.1 ArrayDeque(両端キュー)
  • この章の理解度チェック
  • 第7章 オブジェクト指向構文―基本
  • 7.1 クラスの定義
  • 7.1.1 クラス名
  • 7.1.2 修飾子
  • 7.1.3 メンバーの記述順
  • 7.2 フィールド
  • 7.2.1 修飾子
  • 7.2.2 既定値
  • 7.3 メソッド
  • 7.3.1 メソッド名
  • 7.3.2 実引数と仮引数
  • 7.3.3 戻り値
  • 7.3.4 修飾子
  • 7.3.5 this キーワード
  • 7.3.6 メソッドのオーバーロード
  • 7.4 変数のスコープ
  • 7.4.1 スコープの種類
  • 7.4.2 フィールドとローカル変数
  • 7.4.3 より厳密な変数の有効範囲
  • 7.4.4 ブロックスコープ
  • 7.5 コンストラクター
  • 7.5.1 コンストラクターの基本
  • 7.5.2 デフォルトコンストラクター
  • 7.5.3 コンストラクターのオーバーロード
  • 7.5.4 初期化ブロック
  • 7.5.5 ファクトリーメソッド
  • 7.6 クラスメソッド/クラスフィールド
  • 7.6.1 クラスメソッド
  • 7.6.2 クラスフィールド
  • 7.6.3 クラス定数
  • 7.6.4 static 初期化ブロック
  • 7.6.5 初期化処理の実行順序
  • 7.7 引数/戻り値の様々な記法
  • 7.7.1 可変長引数のメソッド
  • 7.7.2 引数とデータ型
  • 7.7.3 null 安全の対策―Optional クラス
  • 7.8 パッケージ
  • 7.8.1 パッケージの基本
  • 7.8.2 名前の解決
  • 7.8.3 static インポート
  • この章の理解度チェック
  • 第8章 オブジェクト指向構文―カプセル化/継承/ポリモーフィズム
  • 8.1 カプセル化
  • 8.1.1 アクセス修飾子
  • 8.1.2 フィールドのアクセス権限
  • 8.1.3 アクセサーメソッド
  • 8.1.4  例 不変クラス
  • 8.2 継承
  • 8.2.1 継承の基本
  • 8.2.2 フィールドの隠蔽
  • 8.2.3 メソッドのオーバーライド
  • 8.2.4 super による基底クラスの参照
  • 8.2.5 派生クラスのコンストラクター
  • 8.2.6 継承/オーバーライドの禁止
  • 8.2.7 シールクラスによる継承先の制限[17]
  • 8.2.8 参照型における型変換
  • 8.2.9 型の判定
  • 8.2.10 委譲
  • 8.3 ポリモーフィズム
  • 8.3.1 ポリモーフィズムの基本
  • 8.3.2 抽象メソッド
  • 8.3.3 インターフェイス
  • 8.3.4 インターフェイスのメンバー
  • 8.3.5 インターフェイスと抽象クラスの使い分け
  • この章の理解度チェック
  • 第9章 オブジェクト指向構文―入れ子のクラス/ジェネリクス/例外処理など
  • 9.1 Objectクラス
  • 9.1.1 オブジェクトの文字列表現を取得する―toString メソッド
  • 9.1.2 オブジェクト同士が等しいかどうかを判定する―equals メソッド
  • 9.1.3 オブジェクトのハッシュ値を取得する―hashCode メソッド
  • 9.1.4  補足 オブジェクトを比較する― compareTo メソッド
  • 9.1.5 オブジェクトを複製する―clone メソッド
  • 9.2 例外処理
  • 9.2.1 例外処理の基本
  • 9.2.2 finally ブロック
  • 9.2.3 try-with-resource 構文
  • 9.2.4 例外クラスの階層構造
  • 9.2.5 例外をスローする
  • 9.2.6 例外の再スロー
  • 9.2.7 独自の例外クラス
  • 9.3 列挙型
  • 9.3.1 列挙型の基本
  • 9.3.2 列挙型の正体
  • 9.3.3 メンバーの定義
  • 9.3.4 ビットフィールドによるフラグ管理
  • 9.4 レコード
  • 9.4.1 レコードの基本
  • 9.4.2 レコード型のパターンマッチング
  • 9.4.3 レコードパターンのより複雑な例
  • 9.5 入れ子のクラス
  • 9.5.1 static メンバークラス
  • 9.5.2 非static メンバークラス
  • 9.5.3 匿名クラス
  • 9.5.4 ローカルクラス
  • 9.6 ジェネリクス
  • 9.6.1 ジェネリック型の定義
  • 9.6.2 型パラメーターの制約条件
  • 9.6.3 ジェネリックメソッド/ジェネリックコンストラクター
  • 9.6.4 境界ワイルドカード型
  • この章の理解度チェック
  • 第10章 ラムダ式/Stream API
  • 10.1 メソッド参照/ラムダ式
  • 10.1.1 メソッド参照/ラムダ式を利用しない例
  • 10.1.2 メソッド参照の基本
  • 10.1.3 ラムダ式の基本
  • 10.1.4 ラムダ式における変数のスコープ
  • 10.1.5 ラムダ式を伴うコレクション系のメソッド
  • 10.2 Stream API
  • 10.2.1 Stream API の基本
  • 10.2.2 ストリームの生成
  • 10.2.3 ストリームの中間処理
  • 10.2.4 ストリームの終端処理
  • この章の理解度チェック
  • 第11章 高度なプログラミング
  • 11.1 マルチスレッド処理
  • 11.1.1 スレッドの基本
  • 11.1.2 排他制御
  • 11.1.3 排他制御のその他の手段
  • 11.1.4 スレッドプール
  • 11.1.5 定期的なスレッド実行
  • 11.1.6 仮想スレッドを生成する
  • 11.1.7 スレッドの処理結果を受け取る―Callable インターフェイス
  • 11.1.8 スレッド処理の後処理を定義する―CompletableFuture クラス
  • 11.2 アノテーション
  • 11.2.1 アノテーションの記述位置
  • 11.2.2 アノテーションの基本構文
  • 11.2.3 標準のアノテーション
  • 11.2.4 アノテーションの自作
  • 11.2.5  補足 リフレクションの主なメソッド
  • 11.3 モジュール
  • 11.3.1 モジュールの基本
  • 11.3.2 標準ライブラリのモジュール
  • 11.3.3 推移的な依存
  • 11.3.4 パッケージを公開する
  • 11.3.5 特殊なモジュール
  • 11.3.6  例 非モジュールライブラリとの共存
  • この章の理解度チェック
  • 付録A 「練習問題」「この章の理解度チェック」解答

正誤表

該当頁 該当箇所 修正刷
訂正箇所 訂正事項 更新日
p.135 リスト4.17 WhileOmit.java 3-4行目 2刷
Console.WriteLine(i++);
Console.WriteLine("********");
System.out.println(i++);
System.out.println("********");
2024/03/01
p.152 コラム「ソースコードからドキュメントを生成する──javadocコマンド」本文1行目 2刷
/*~*/の形式で /**~*/の形式で 2024/07/18
p.156 リスト5.1 AutoBoxing.java 上から3行目 2刷
1~ 10000の総和を求める 1~ 9999の総和を求める 2024/07/18
p.161 リスト5.10の下 本文1行目 -
それ以前のバージョンではtrim/trimLeft/trimRightメソッドを利用してください。trimXxxxxメソッドはstripXxxxxメソッドとほぼ同じ挙動を~ それ以前のバージョンではtrimメソッドを利用してください。trimメソッドはstripメソッドとほぼ同じ挙動を~ 2025/04/11
p.190 リスト5.31 RegUnicodeProp.java 2刷
- import java.util.regex.Pattern;

(※先頭にimport文を追加)
2024/07/18
p.192 本文 1行目 -
replaceメソッドでも名前付きキャプチャグループを利用できます。 replaceAllメソッドでも名前付きキャプチャグループを利用できます。 2025/04/05
p.200 リスト5.40 TimeGet2.java 5-7行目 -
var week = new String[] {"日曜日","月曜日", ..."土曜日"}; var week = new String[] {"曜日","曜日", ..."曜日"};

先頭を月曜日、末尾を日曜日 にしてください。
2025/01/16
p.203 リスト5.42 TimePattern.java 上から4行目 2刷
import java.time.format.DateTimeForm import java.time.format.DateTimeFormatter; 2024/07/18
p.230 リスト5.59 RandomExample.java 中略の下 2刷
- var rnd = new Random();

(※変数宣言を追加)
2024/07/18
p.234 リスト5.63 ArrayDeep.java 1行目 2刷
mport java.util.Arrays; import java.util.Arrays; 2024/07/18
p.265 表6.5 -
boolean remove(int index) E remove(int index) 2025/09/23
p.283 リスト6.22 MapNavigable.java 2刷
put("peace", "1切れ");
put("piece", "平和");
put("peace", "平和");
put("piece", "1切れ");
2024/07/18

FAQ

現在、FAQはありません。

お問い合わせ

書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。

Powered by メールフォーム 『オレンジフォーム』