現場で使える[最新]Java SE 7/8 速攻入門

書籍の概要

この本の概要

Java SE 7とそれに続きリリースされたJava SE 8において,予定されながらも遅れていたJavaへの最新機能が搭載されました(ジェネリクス記法の簡略化/リソースの自動クローズ/複数例外の処理/ファイル操作記述の簡略化,新しいファイルシステムAPI NIO.2【Java SE 7】,新しい日時API,Date&Time API/ラムダ式による記法の簡略化/複数のオブジェクトの処理を可能にするStream【Java SE 8】など)。これらは現場のプログラマーにとって非常に重要な変更点であり,Java7/8はプログラマーにとって重要な意味を持ちます。本書では,コーディング自体も大きく様変わりしたJava7/8を,他のどの本よりもわかりやすく解説します。

こんな方におすすめ

  • Javaの基本知識(文法の基礎)はあるプログラマー
  • Javaでの開発経験があるプログラマー

目次

  • はじめに

Chapter 1 小さな言語仕様の変更 ――Project Coin

  • 1.1 小さな言語仕様の変更
  • 1.2 switch文での文字列の使用
  • 1.3 2進数リテラル
  • 1.4 数値リテラルの区切り文字
  • 1.5 マルチキャッチ
  • 1.6 適切な型による例外の再スロー
  • 1.7 ジェネリクス型パラメータの省略
    • 1.7.1 ダイヤモンド演算子が使用可能な箇所
    • 1.7.2 ダイヤモンド演算子が使用できない箇所
  • 1.8 リソースの自動クローズ
    • 1.8.1 複数リソースの自動クローズ
  • 1.9 安全な可変長引数メソッド
  • 1.10 まとめ

Chapter 2 新しいファイルシステムインタフェース ――NIO.2

  • 2.1 新しいファイルシステムインタフェース
  • 2.2 ファイルシステムとパス
    • 2.2.1 Pathオブジェクトの生成
    • 2.2.2 Pathの機能
    • 2.2.3 PathとFileの相互変換
  • 2.3 Pathに対する操作
    • 2.3.1 コピー
    • 2.3.2 移動/名前の変更
    • 2.3.3 削除
    • 2.3.4 ファイル/ディレクトリの作成
    • 2.3.5 リンク
    • 2.3.6 ファイルの入出力
  • 2.4 アトリビュート
    • 2.4.1 Filesクラスのアトリビュート関連メソッド
    • 2.4.2 名前を指定したアトリビュートの取得/設定
    • 2.4.3 複数のアトリビュートの取得/設定
  • 2.5 ファイルツリーの走査
    • 2.5.1 ディレクトリのコピー
  • 2.6 ディレクトリの監視
  • 2.7 まとめ

Chapter 3 ラムダ式による新しいプログラミングスタイル

  • 3.1 ラムダ式と新しいプログラミングスタイル
  • 3.2 関数型インタフェース
    • 3.2.1 関数型インタフェースとは?
    • 3.2.2 汎用の関数型インタフェース
    • 3.2.3 関数型インタフェースの作成
  • 3.3 ラムダ式
    • 3.3.1 引数の型,丸カッコの省略
    • 3.3.2 波カッコとreturn文の省略
    • 3.3.3 実質的final
    • 3.3.4 ラムダ式の注意点
  • 3.4 デフォルトメソッド
    • 3.4.1 デフォルトメソッドの使用
    • 3.4.2 デフォルトメソッドと多重継承
  • 3.5 インタフェースのstaticメソッド
  • 3.6 メソッド参照
    • 3.6.1 クラスメソッド参照
    • 3.6.2 インスタンスメソッド参照
    • 3.6.3 コンストラクタ参照
  • 3.7 ラムダ式の使い道
    • 3.7.1 高階関数
    • 3.7.2 関数合成
  • 3.8 まとめ

Chapter 4 Stream APIによる内部イテレータ

  • 4.1 内部イテレーションとStream API
  • 4.2 内部イテレータ
  • 4.3 Stream API
    • 4.3.1 ストリームの処理手順
    • 4.3.2 ストリームの種類
  • 4.4 ストリームの生成
    • 4.4.1 コレクション,配列からの生成
    • 4.4.2 I/Oからのストリーム生成
    • 4.4.3 ストリームのファクトリメソッド
    • 4.4.4 その他のストリーム生成
  • 4.5 ストリームの中間操作
    • 4.5.1 プリミティブ型に対応したストリームに固有の中間操作
  • 4.6 ストリームの終端操作
  • 4.7 nullチェックとOptionalクラス
    • 4.7.1 生成
    • 4.7.2 値の取得
    • 4.7.3 その他のメソッド
    • 4.7.4 Optionalクラスの用途
  • 4.8 Stream APIを使用した従来のコードの書き換え例
    • 4.8.1 条件に合致する要素を取り出す
    • 4.8.2 要素から他の情報を抽出
    • 4.8.3 要素から他の情報を抽出し,平坦化
    • 4.8.4 要素のグルーピング
    • 4.8.5 要素を平坦化し,集計
    • 4.8.6 顧客ごとの購買履歴の統計をとる
  • 4.9 パラレルストリーム
    • 4.9.1 パラレルストリームの取得
    • 4.9.2 処理順序に依存する記述
    • 4.9.3 パラレルストリームに特有のメソッド
    • 4.9.4 Fork/Join Framework
    • 4.9.5 パラレルストリームの動作
    • 4.9.6 パラレルストリームの注意点
  • 4.10 まとめ

Chapter 5 ISO 8601とDate and Time API

  • 5.1 新しい日時のためのAPI
  • 5.2 ISO 8601
    • 5.2.1 協定世界時?UTC
    • 5.2.2 UTCと地方時の時差
    • 5.2.3 暦
    • 5.2.4 日時表記
    • 5.2.5 日付の表記
    • 5.2.6 時刻の表記
    • 5.2.7 日付と時刻の表記
    • 5.2.8 時間長と時間間隔の表記
    • 5.2.9 JIS X 0301による拡張
  • 5.3 Date and Time API
    • 5.3.1 日時クラスの概要
    • 5.3.2 LocalDateTimeクラス
    • 5.3.3 時差とタイムゾーン
    • 5.3.4 OffsetDateTimeクラス
    • 5.3.5 ZonedDateTimeクラス
    • 5.3.6 日時クラスの変換
    • 5.3.7 Dateクラス,Calendarクラスとの変換
    • 5.3.8 日時フォーマット
    • 5.3.9 時間間隔
    • 5.3.10 暦
  • 5.4 まとめ
  • おわりに

著者プロフィール

櫻庭祐一(さくらばゆういち)

1995年にSunWorldでJava が発表された日にJDK1.0 αをダウンロードし,それ以来公私にわたってJavaを使い続けるソフトウェア開発者。日本唯一のJava Championであり,執筆や講演などを通しJavaの普及活動を行っている。