スラスラわかるJava 第2版
翔泳社
著者:中垣健志、林満也
まえがき~第2版に寄せて~
本書について
目次
第1章 Javaプログラミングの基礎
1_1 Javaの全体像
JRE(Java SE Runtime Environment)
JDK(Java SE Development Kit)
1_2 Javaの使われ方
Androidアプリ
Webサービス
1_3 プログラム
現実世界でのプログラム
コンピューターでのプログラム
1_4 Javaでのプログラム
ソースコードの作成
コンパイル
実行
1_5 Javaでプログラムを作るための環境
標準のJavaツールとメモ帳などのエディターを使う方法
統合開発環境(IDE)を使う
jshell
実際に試してみよう
1_6 Javaプログラミングの基本
簡単なプログラム
第2章 値と演算
2_1 値
2_2 整数
2_3 小数
2_4 真偽値
2_5 演算子
算術演算子
比較演算子
論理演算子
条件AND/OR演算子
三項演算子
2_6 演算時の注意事項
足し算、引き算、掛け算のオーバーフロー
割り算の桁落ち
2_7 式
式の演算子の優先順位
2_8 二進数
二進数で整数を扱う
二進数で負の整数を扱う
二進数で小数を扱う
二進数のまとめ
第3章 変数
3_1 変数とは?
宣言
代入
参照
3_2 型
基本型(プリミティブ型)
参照型(リファレンス型)
3_3 変数の宣言
変数名の付け方
変数宣言と初期化
3_4 変数への代入
代入の評価順序
3_5 変数の参照
変数の初期値とnull
3_6 代入演算子
代入演算子
再帰代入演算子
インクリメント/デクリメント演算子
3_7 拡大変換とキャスト変換
拡大変換
キャスト変換
3_8 変数のfinal宣言
第4章 文字
4_1 文字と文字列
4_2 文字列
変数の利用
文字列の連結
文字列に用意されているメソッドの利用
4_3 文字エンコーディング
文字セット
文字エンコーディング
4_4 エスケープシーケンス
第5章 日付
5_1 Javaと日付
日付の管理単位
5_2 Dateクラス
日付を管理するクラス
インスタンスの生成
5_3 Calendarクラス
カレンダー
現在の日付を取得する
指定した日付を取得する
カレンダーとフィールド
フィールドの取得
フィールドの変更
日付の計算
タイムゾーン
時差とDateクラス
5_4 日付を文字列に変換する
SimpleDateFormatクラス
ロケール
第6章 コレクション
6_1 コレクションとは?
コレクションの機能
コレクション変数の宣言と代入
コレクションのデータ型の制約について
6_2 リスト
要素の追加
要素の削除
要素の参照
要素の変更
ArrayアルゴリズムとLinkedアルゴリズム
6_3 セット
要素の追加
要素の削除
Hash(ハッシュ)アルゴリズム
6_4 マップ
要素の追加
要素の削除
要素の取得
Hash(ハッシュ)アルゴリズム
6_5 配列
配列の作成
要素の取得と変更
第7章 制御文
7_1 プログラムの処理の流れ
7_2 順次
7_3 分岐
if
switch
7_4 反復
while
do-while
for
拡張for
breakとcontinue
第8章 オブジェクト指向
8_1 オブジェクト指向の基本
大規模なプログラムを分割する
オブジェクト指向とは?
分割されていない「役所」
非オブジェクト指向的な「役所」
オブジェクト指向的な「役所」
8_2 オブジェクト指向を構成する4つの概念
カプセル化
継承
ポリモーフィズム
動的束縛
8_3 オブジェクト指向とJava
単一継承と多重継承
オブジェクト、クラス、インスタンス
Javaでのオブジェクト指向
第9章 クラスの基礎
9_1 クラスの作成
オブジェクト指向のおさらいとクラス
クラスを定義するファイルの作成
クラスの定義(class)
フィールドの定義
フィールドの初期値
メソッドの定義
9_2 インスタンスの作成
フィールドを使用する
メソッドを呼び出す
9_3 カプセル化
カプセル化しない場合
カプセル化した場合
9_4 継承
extends
extends句の省略とObjectクラス
9_5 動的束縛とポリモーフィズム
動的束縛
ポリモーフィズム
第10章 クラスの応用
10_1 コンストラクタ
デフォルトコンストラクタ
10_2 this
10_3 オーバーライド
メソッドのオーバーライド
元のメソッドを完全置き換えるオーバーライド
元のメソッドを生かしたオーバーライド
10_4 オーバーロード
メソッドのオーバーロード
オーバーロードされたメソッドの呼び出し
10_5 オーバーライドとオーバーロードの復習
10_6 final
メソッドへのfinal指定
クラスへのfinal指定
10_7 内部クラス
内部クラス内のthisの扱い
無名内部クラス
10_8 参照型のキャスト
10_9 静的フィールドと静的メソッド
静的フィールド
静的メソッド
静的メソッドの注意点
静的フィールド、静的メソッドの用途
10_10 定数
10_11 列挙型(enum型)
列挙型の定義
列挙型のメリット
第11章 名前空間とスコープ
11_1 名前空間
package
import
11_2 アクセス制御
Javaでのアクセス制御とサクセス修飾子
privateアクセス修飾子
デフォルトアクセス修飾子
protectedアクセス修飾子
publicアクセス修飾子
アクセス制御使い分けの指針
第12章 抽象クラスとインターフェイス
12_1 抽象クラスとは?
抽象メソッドと抽象クラス
抽象クラスと抽象メソッドの具体例
12_2 インターフェイス
複数のクラスから共通点を抜き出す
12_3 インターフェイスの実装方法
クラスを作成する
インターフェイスを作成する
クラスにインターフェイスを実装する
インターフェイスによるポリモーフィズム
12_4 複数のインターフェイスの実装
同じメソッドを持つインターフェイス
12_5 インターフェイスの継承
第13章 ジェネリクス
13_1 ジェネリクスとは?
ジェネリクスの役割
13_2 ジェネリクスの実装
何でも扱える倉庫クラス
特定のものを保存できる倉庫クラス
ジェネリクスを使った倉庫クラス
複数の型パラメータ
13_3 ワイルドガード
ワイルドガードを使ったクラスの作成
ワイルドガードを使ったクラスの利用
第14章 例外
14_1 エラーと例外
エラー
例外
例外の種類
14_2 例外の検出
例外の検出する
複数の例外を検出する
必ず最後に実行する
リソースを解放する
14_3 例外の発生
例外を発生させる
独自の例外を作成する
14_4 例外の伝播
実行時エラー
検査例外の伝播
スタックトレース
第15章 スレッド
15_1 スレッドとは?
スレッドの利用シーン
15_2 スレッドの基礎
スレッドを作成する(Threadクラスを利用)
スレッドを起動する
スレッドの終了を待つ
スレッドを作成する(Runnableインターフェイスを利用)
15_3 スレッドセーフ
矛盾が発生する仕組み
スレッドの処理の順番
synchronizedメソッド
synchronizedブロック
第16章 ライブラリ
16_1 ライブラリとは?
16_2 Javaクラスライブラリ
java.lang
java.util
java.io
Java 6以前の入力の例
16_3 外部ライブラリ
外部ライブラリを組み込む
IntelliJ IDEAでのクラスパスの指定方法
Eclipseでのクラスパスの指定方法
コマンドラインでのクラスパスの指定方法
16_4 ライブラリの作り方
IntelliJ IDEAでのライブライファイルの作り方
Eclipseでのライブラリファイルの作り方
コマンドラインでのライブラリの作り方
第17章 リフレクションとアノテーション
17_1 リフレクションの基本
リフレクションとは?
Classクラス
Classクラスのインスタンスを取得する
Classクラスの情報を取得する
インスタンスを作成する
フィールドの操作
メソッドの操作
リフレクションの危険性
17_2 アノテーションの利用
アノテーションの書き方
Java標準のアノテーション
独自のアノテーションを作成する
独自のアノテーションを利用する
第18章 関数型プログラミング
18_1 関数型プログラミングとは?
関数とは?
参照透過性
関数を組み合わせる
18_2 Javaでの関数型プログラミング
ラムダ(Lambda)
ストリーム
第19章 ラムダ式
19_1 関数
19_2 ラムダ式を定義する
引数の省略記法
処理の省略記法
ラムダ式の省略の実際
19_3 ラムダ式を使う
スレッドでラムダ式を使う
Listオブジェクトの並び替え
19_4 関数インターフェイス
標準の関数型インターフェイス
独自の関数型インターフェイス
19_5 メソッド参照とコンストラクター参照
メソッド参照
コンストラクター参照
第20章 ストリーム
20_1 ストリームとは?
20_2 中間操作
ステートレス
ステートフル
中間操作の結合
20_3 終端操作
要素を返すもの
結果を返すもの
何も返さないもの
20_4 まとめ
付録
検索キーワード