新世代Javaプログラミングガイド[Java SE 10/11/12/13と言語拡張プロジェクト]
2,860円 (2,600円+税)
【注意】本書のEPUB版は固定レイアウト型になっております。文字の大きさの変更や検索、引用などはお使いいただけません。画面の大きい端末でご利用ください。
関連サイト
本書の関連ページが用意されています。
内容紹介
Javaのテクニックをアップグレードしよう!
バージョン10から最新版までさまざまなアップデートを一挙に学べる!
Java SE 10以降では、年2回のバージョンアップサイクルとなっています。そのうちバージョン11は、長期サポート版としてリリースされました。
本書では「Java SE 10~13の新機能」と「開発中の機能」を取り上げています。取り上げるテーマは、以下のとおりです。
型推論、アプリケーション・クラスデータ共有、ガベージコレクタ、ラムダ式、ラムダパラメータ、enum、データクラス、テキストブロック、パターンマッチング、など
機能の内容だけでなく、背景、使い方、ユースケースも適宜、説明しています。本書は、機能拡張のサイクルを加速させるJava SEのアップデートを確認したい読者にとって、最適な一冊です。
書誌情報
- 著者: Mala Gupta(著), 柴田 芳樹(訳)
- 発行日: 2020-03-13 (紙書籍版発行日: 2020-03-13)
- 最終更新日: 2020-03-13
- バージョン: 1.0.0
- ページ数: 216ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
入門者を除くJavaプログラマー。
著者について
Mala Gupta
チェコに本社を置くソフトウェア開発企業JetBrainsで、開発者のアドボケイト(主唱者)として働いている。また、eJavaGuruの創設者として、キャリア向上のためのJava認定試験を積極的に推進し、2006年以降、認定試験の合格を目指す学生や社会人を支援している。ソフトウェア業界で18年以上の経験を積んでおり、基本的な人生のスキルとして創造性を育成するプラットホームKaagZevarを共同で設立。Delhi Java User Groupを共同で運営しながら、Women Who Code Delhiのディレクタとして、Women in Technologyにおける多様性の擁護にも力を入れている。
柴田 芳樹
1959年生まれ。九州工業大学情報工学科で情報工学を学び、1984年に同大学大学院で情報工学修士課程を修了。パロアルト研究所を含む米国ゼロックス社での5年間のソフトウェア開発も含め、Unix(Solaris/Linux)、C、Mesa、C++、Java、Goなどを用いたさまざまなソフトウェア開発に従事してきた。現在もソフトウェア開発に従事し、個人的な活動として技術教育やコンサルテーションなどを行っている。2000年以降、私的な時間に技術書の翻訳や講演なども数多く行っている。
目次
サンプル/正誤/商標
訳者まえがき
まえがき
第1部 Java 10
第1章 ローカル変数での型推論
- 1.1 型推論とは
- 1.2 varによる型推論
- 1.3 Java 9までの型推論
- 1.4 課題
- 1.5 型推論と動的バインディング
- 1.6 まとめ
第2章 AppCDS - アプリケーション・クラスデータ共有
- 2.1 技術的な要件
- 2.2 CDSとは
- 2.3 AppCDS
- 2.4 まとめ
第3章 ガベージコレクタの最適化
- 3.1 技術的な要件
- 3.2 GCインタフェース
- 3.3 G1用の並列フルGC(JEP 307)
- 3.4 まとめ
第4章 JDK 10のその他の改良点
- 4.1 技術的な要件
- 4.2 JDK 10の機能と、対応するJEP番号/範囲
- 4.3 まとめ
第2部 Java 11
第5章 ラムダパラメータのローカル変数構文
- 5.1 技術的な要件
- 5.2 ラムダ式
- 5.3 ラムダパラメータとvarでの型推論
- 5.4 まとめ
第6章 Epsilon GC - ガベージコレクタの改良
- 6.1 技術的な要件
- 6.2 Epsilon GCの背後にある動機
- 6.3 HelloEpsilonGCクラス
- 6.4 Epsilon GCによるメモリプレッシャーテスト
- 6.5 ガベージなしアプリケーションを設計する
- 6.6 まとめ
第7章 HTTPクライアントAPI
- 7.1 技術的な要件
- 7.2 はやめぐり
- 7.3 コード例
- 7.4 非同期なGETを使ってHTMLページへアクセスする
- 7.5 まとめ
第8章 ZGC - 低遅延化とスケーラビリティの改善
- 8.1 技術的な要件
- 8.2 動機
- 8.3 ZGCのヒープ
- 8.4 ZGCのフェーズ
- 8.5 色付けされたポインタ
- 8.6 ZGCのチューニング
- 8.7 まとめ
第9章 フライトレコーダとミッションコントロール
- 9.1 技術的な要件
- 9.2 JFRの背景にある動機
- 9.3 JFRを使う
- 9.4 カスタムイベントに取り組む
- 9.5 まとめ
第10章 JDK 11のその他の改良点
- 10.1 技術的な要件
- 10.2 JDK 11の機能と、対応するJEP番号/範囲
- 10.3 ネストに基づくアクセス制御
- 10.4 動的クラスファイル定数
- 10.5 AArch64イントリンシックの改善
- 10.6 Java EEとCORBAモジュールの削除
- 10.7 Curve25519とCurve448での鍵合意
- 10.8 Unicode 10
- 10.9 ChaCha20とPoly1305の暗号アルゴリズム
- 10.10 単一ファイルソースコードのプログラム起動
- 10.11 TLS 1.3
- 10.12 Nashorn JavaScriptエンジンの廃止
- 10.13 pack200ツールとAPIの廃止
- 10.14 まとめ
第3部 Java 12
第11章 switc
- 11.1 技術的な要件
- 11.2 従来のswitch文の問題
- 11.3 switch式を使う
- 11.4 switchの条件分岐内でローカル変数を定義する
- 11.5 switch式の別の構文
- 11.6 プレビュー言語機能
- 11.7 網羅的なcase
- 11.8 値を返す以外にswitchの条件分岐ができること
- 11.9 switch式でラベルとcontinueを使えないケース
- 11.10 まとめ
第12章 JDK 12のその他の改良点
- 12.1 技術的な要件
- 12.2 JDK 12の機能と、対応するJEP番号/範囲
- 12.3 Shenandoah GC:一時停止時間が短いGC
- 12.4 マイクロベンチマーク・スイート
- 12.5 JVM定数API
- 12.6 AArch64版の一本化
- 12.7 CDSアーカイブをデフォルト
- 12.8 G1用の中止可能な混在コレクション
- 12.9 未使用のコミットメモリのG1からの迅速な返却
- 12.10 まとめ
第4部 Java言語拡張プロジェクト「Amber」
第13章 Amberプロジェクトの拡張enum
- 13.1 enumの背景
- 13.2 enum定数の状態と振る舞い
- 13.3 まとめ
第14章 データクラスとその利用方法
- 14.1 データクラスの紹介
- 14.2 データクラス
- 14.3 まとめ
第15章 テキストブロック
- 15.1 技術的な要件
- 15.2 簡単なコード例
- 15.3 既存の複数行の文字列リテラルでの問題
- 15.4 テキストブロック
- 15.5 よくある例
- 15.6 まとめ
第16章 ラムダの改善ポイント
- 16.1 技術的な要件
- 16.2 使われないパラメータをアンダースコアで明示する
- 16.3 ラムダパラメータのシャドーイング
- 16.4 関数式の曖昧性の除去
- 16.5 まとめ
第17章 パターンマッチング
- 17.1 技術的な要件
- 17.2 パターンマッチング
- 17.3 型検査での既存の問題
- 17.4 型検査パターン
- 17.5 switch構文でのパターンマッチング
- 17.6 まとめ