書籍詳細(独習Java 新版)

独習Java 新版 書影

ISBN: 978-4-7981-5112-0

独習Java 新版

サポート終了
著者山田祥寛
出版社翔泳社
価格2,980円(税別)
判型B5変判・1色
ページ数624ページ
発売日2019年5月15日
シリーズ 独習
対象レベル初中級

改訂版が刊行されています。詳細はこちらをご覧ください。

“標準教科書”が完全書き下ろしで11年ぶり新登場!

手を動かしておぼえる(書いて実行して結果を確認する)特長を生かし、Javaプログラミングに必要な知識・概念・機能を体系的かつ網羅的に習得できます。
基本的な言語仕様から、標準ライブラリ、コレクション、オブジェクト指向、ラムダ式/Stream API、スレッド、マルチスレッド処理、アノテーション、モジュールまで、サンプルプログラムを例示しながら詳細かつ丁寧に解説します。
独習Java 新版 ロゴ

更新履歴

  • FAQ情報:2024年1月18日 更新
  • 正誤訂正:2022年10月6日 更新

目次

  • 第1章 イントロダクション
  • 1.1 Javaとは?
  • 1.1.1 Javaの特徴
  • 1.1.2 Javaのエディション
  • 1.1.3 Javaの歴史
  • 1.2 Javaアプリを開発/実行するための基本環境
  • 1.2.1 準備すべきソフトウェア
  • 1.2.2 Eclipseのインストール
  • 1.2.3 Eclipseの画面構成
  • 1.3 Javaプログラミングの基本
  • 1.3.1 基本的なアプリの作成
  • 1.3.2 コードの全体像
  • 1.3.3 デバッグの基本
  • この章の理解度チェック
  • 第2章 Javaの基本
  • 2.1 変数
  • 2.1.1 変数の宣言
  • 2.1.2 識別子の命名規則
  • 2.1.3 よりよい識別子のためのルール
  • 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.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.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-TimeAPI⇔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 ファイルシステムを操作する――Filesクラス
  • 5.6.7 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 参照型における型変換
  • 8.2.8 型の判定
  • 8.2.9 委譲
  • 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 staticメンバークラス
  • 9.4.2 非staticメンバークラス
  • 9.4.3 匿名クラス
  • 9.4.4 ローカルクラス
  • 9.5 ジェネリクス
  • 9.5.1 ジェネリック型の定義
  • 9.5.2 型パラメーターの制約条件
  • 9.5.3 ジェネリックメソッド/ジェネリックコンストラクター
  • 9.5.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 スレッドの処理結果を受け取る――Callableインターフェイス
  • 11.1.7 スレッド処理の後処理を定義する――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.33 本文3行目 4刷
まずは(2)を優先して利用することをお勧めします。 まずは(1)を優先して利用することをお勧めします。 2022/05/16
p.42 12行目 4刷
5.の予約語とは、 4.の予約語とは、 2022/05/16
p.77 この章の理解度チェック[2]問題文 下から2行目 3刷
[①]で表記できるようになります。 ]で表記できるようになります。 2021/02/14
p.90 下から7行目 4刷
VALUES = new int[] { 10, 20, 30 }; VALUES = new int[] { 15, 25, 35 }; 2022/05/16
p.96 リスト3.15の下 4行目 4刷
戻り値は、配列1>配列2の場合は1、配列1=配列2 の場合は0、配列1<配列2の場合は-1です。 戻り値は、配列1>配列2の場合は正数、配列1=配列2の場合は0、配列1<配列2の場合は負数です。 2021/06/04
p.102 表3.6 主なビット演算子  >>>演算子の用例 3刷
10 >>> 2 → 1010 >>> 2 → 0101 → 5 10 >>> 2 → 1010 >>> 2 → 00102 2020/07/21
p.119 本文 下から2行目 3刷
 「変数.equale(値)」  「変数.equals(値)」 2021/03/16
p.141 「この章の理解度チェック」の[4] 2行目 4刷
「JVM言語」「C#」「Visual Basic」「F#」であれば 「JVM言語」「C#」「Visual Basic」「F#」であれば 2022/05/16
p.158 リスト5.16 StrFormat.javaの③ 4刷
System.out.println(String.format("%.2sです。", "サクラ"));
// 結果:サクです。
System.out.println(String.format("%2sです。", "サクラ"));
// 結果:サクラです。
2021/06/04
p.158 リスト5.16 1行目 4刷
import java.util.LocalDateTime; import java.time.LocalDateTime; 2021/06/04
p.160 「③~⑤文字列の表示幅」の下 4刷
③は、文字列幅を2と指定しているため、3文字目以降が表示されません。 ③は、実際の文字列よりも指定幅が短いので、すべての文字列が表示されます。あくまで最小幅を表すだけで、指定桁で切り捨てられるわけではありません。 2021/06/04
p.160 本文5行目 4刷
「女の子」に対応すべき「3$」がありません 「女の子」に対応すべき「2$」がありません 2022/05/16
p.160 ⑥~⑦整数の場合 上から4行目 4刷
という意味です。 という意味です()。 2022/05/16
p.163 表5.6:Javaで利用できる主な正規表現パターン [X-Z]のマッチする文字列 4刷
X~Yの範囲の中の1 文字 X~Zの範囲の中の1 文字 2022/05/16
p.170 1つ目のnote 4行目 4刷
+(\.[A-Za-z0-9-]+)* +(\\.[A-Za-z0-9-]+)* 2022/05/16
p.180 練習問題 5.2 [2]下から2行目 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/16
p.203 note 1行目 4刷
newBufferedWriterFilesクラスは、Java 8で導入された比較的新しいメソッドです。 newBufferedWriterFilesは、Java 8で導入された比較的新しいメソッドです。 2021/06/04
p.203 図5.A 4刷
ファイルの読み込み ファイルの書き込み 2021/06/04
p.203 note 3行目 4刷
var BufferedWriter 2021/06/04
p.206 下から5行目 4刷
var BufferedReader 2021/06/04
p.210 リスト5.49 Article.java 下から7行目 3刷
public Article(String title, String url) { public Article(String title, String url, boolean expired) { 2021/03/16
p.260 図6.9 子ノードの数値 4刷
17 21 2021/06/28
p.263 本文最終行、表のキャプション 3刷
NabigableMap NavigableMap 2021/03/16
p.309 リスト7.26 下から3行目 2刷
return this.instance; return instance; 2019/12/08
p.394 本文3行目 4刷
対称性/一貫性は、意図せず違反することがあります。 対称性/推移性は、意図せず違反することがあります。 2022/05/09
p.395 リスト9.4 下の本文 3刷
Personクラスのequalsメソッドではtitleフィールドを~ Personクラスのequalsメソッドではdepartmentフィールドを 2021/03/16
p.422 14行目 4刷
捕捉した例外をそのままスローするだけならば、引数を省略して「throw;」と書いても同じ意味です。 (すべてカット) 2021/06/04
p.437 図9.11 4刷
flagsを含んでいるか CASE_INSENSITIVE/MULTILINEを含んでいるか 2022/05/20
p.437 図9.11 4刷
flagsだけを含んでいるか CASE_INSENSITIVE/MULTILINEだけを含んでいるか 2022/05/20
p.437 リスト9.34 コメント部分 4刷
CASE_INSENTIVE/MULTILINEを含んでいるか

CASE_INSENTIVE/MULTILINEだけを含んでいるか
CASE_INSENSITIVE/MULTILINEを含んでいるか

CASE_INSENSITIVE/MULTILINEだけを含んでいるか
2022/05/20
p.548 表11.6 allの概要 4刷
すべての警告を有効化 すべての警告を無効化 2022/10/06
p.582 練習問題 3.2[2]①の解答 3刷
false true 2019/12/08
p.582 「この章の理解度チェック  p.107」の[2] 2行目 4刷
値型と参照型とで 基本型と参照型とで 2022/05/16

FAQ

刊行後、URLが以下に変更されたようです。
https://willbrains.jp/

更新日: 2024.01.18

お問い合わせ

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

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