書籍概要

現場で使える[最新]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 まとめ
  • おわりに

サポート

ダウンロード

(2015年11月9日更新)

本書で使用したソースコードは,以下のリンクをクリックすることでダウンロードできます。

ダウンロード
sample.zip

ダウンロードしたファイルを解凍すると,本書で使用したソースコードが現れます。それらは,章ごとに分けて収められています(圧縮ファイルを展開することで,下記のフォルダ構成を確認することができます)。

収録されているフォルダとファイル

[chapter1]フォルダ
  •   Ch101StringInSwitch.java
  •   Ch102NullStringWSwitch.java
  •   Ch103FileLoader.java
  •   Ch104FileCopy.java
[chapter2]フォルダ
  •   Ch201FileSystem.java
  •   Ch202PathCreation.java
  •   Ch203PathOperations.java
  •   Ch204ZipFileSystem.java
  •   Ch205PathFileTranslate.java
  •   Ch206FileCopy.java
  •   Ch207LinkCopy.java
  •   Ch208FileMove.java
  •   Ch209FileRename.java
  •   Ch210FileReplace.java
  •   Ch211PathDelete.java
  •   Ch212FileCreator.java
  •   Ch213DirectoryCreator.java
  •   Ch214DirectoriesCreator.java
  •   Ch215LinkChecker.java
  •   Ch216HardlinkCreator.java
  •   Ch217SymboliclinkCreator.java
  •   Ch218SymboliclinkReader.java
  •   Ch219FileLoader.java
  •   Ch220SimpleFileLoader.java
  •   Ch221SimpleFileSaver.java
  •   Ch222SimpleAttributeReader.java
  •   Ch223SimpleAttributeWriter.java
  •   Ch224AttributeReader.java
  •   Ch225AttributeWriter.java
  •   Ch226AttributesReader.java
  •   Ch227AttributesWriter.java
  •   Ch228FileTreeWalk.java
  •   Ch229DirecotryCopy.java
  •   Ch230DirecotryWatch.java
[chapter3]フォルダ
  •   Ch301DifferenceCheck.java
  •   Ch302DefaultMethodDemo.java
  •   Ch303ReAbstraction.java
  •   Ch304DefaultMethodOverride.java
  •   Ch305DiamondInheritance.java
  •   Ch306ClassInterfaceInheritance.java
  •   Ch307DefaultMethodCalll.java
  •   Ch308ClassMethodReferenceDemo.java
  •   Ch309MultiArgsClassMethodReferenceDemo.java
  •   Ch310StrategyDemo.java
  •   Ch311ComplexSortDemo.java
  •   Ch312FunctionSynthesizeDemo.java
[chapter4]フォルダ
  •   Ch401FilesListDemo.java
  •   Ch402FilesWalkDemo.java
  •   Ch403FilesFindDemo.java
  •   Ch404ForToStream.java
  •   Ch405ForkJoinFrameworkDemo.java
  •   Customer.java
  •   Item.java

それぞれのソースコードは,ご自身の責任において使用してください。使用した如何なる結果についても,著者および技術評論社は一切の責任を負いません。

正誤表

小社刊『現場で使える[最新]Java SE 7/8 速攻入門』(櫻庭祐一・著/2015年12月25日 初版 第1刷)におきまして,一部の記述に間違いのあることが判明いたしましたので,下記のとおりお知らせいたします。読者の皆様にはご迷惑をおかけし,まことに申し訳ございません。ご容赦くださいますよう,お願い申し上げます。

(2017年4月3日最終更新)

P.65(本文の下から8行目)

WindowsであればShift_JIS
WindowsであればMS932

P.202(本文の下から4行目)

最後のORDEREDは
最後のUNORDERED

P.211(表4.17中の4番目のメソッド名)

ofElseThrow
orElseThrow

P.211(本文の下から3行目)

orElseGetメソッドもSupplierインタフェースのラムダ式を使用する点は同じなのですが,……
orElseThrowメソッドもSupplierインタフェースのラムダ式を使用する点は同じなのですが,……

(以下,2016年4月18日更新)

P.181(リスト4.44の1行目)


int sum = IntStream.range(0, 3)
                             .reduce(0, (prv, prs) -> prv + prs);


int sum = IntStream.range(0, 4)
                             .reduce(0, (prv, prs) -> prv + prs);


(以下,2015年12月1日更新)

P.133(リスト3.56の1行目)

IntFunction<String[]> func1 = (size) -> new String[10];
IntFunction<String[]> func1 = (size) -> new String[size];

(以下,2015年11月26日更新)

P.100(リスト3.3の上,本文下から2行目)

ようにしていました.たとえば,Collectorsクラスのsortメソッドは内部イテレータ
ようにしていました.たとえば,Collectionsクラスのsortメソッドは内部イテレータ

(以下,2015年11月18日更新)

P.169(本文上から1行目)

の16バイトでは文字が収まらなくなってしまいました.16バイトを超えた文字を補助
の16ビットでは文字が収まらなくなってしまいました.16ビットを超えた文字を補助

商品一覧