試験公開中

このエントリーをはてなブックマークに追加

新世代Javaプログラミングガイド[Java SE 10/11/12/13と言語拡張プロジェクト]

インプレス

2,600円+税

本書では「Java SE 10~13の新機能」と「開発中の機能」を解説。「ローカル変数での型推論」「アプリケーション・クラスデータ共有」「フライトレコーダ」「switch式」「データクラス」など、機能拡張のサイクルを加速させるJava SEのアップデートを確認したい読者にとって、最適な一冊です。

【注意】本書のEPUB版は固定レイアウト型になっております。文字の大きさの変更や検索、引用などはお使いいただけません。画面の大きい端末でご利用ください。

関連サイト

本書の関連ページが用意されています。

内容紹介

Javaのテクニックをアップグレードしよう!

バージョン10から最新版までさまざまなアップデートを一挙に学べる!

Java SE 10以降では、年2回のバージョンアップサイクルとなっています。そのうちバージョン11は、長期サポート版としてリリースされました。

本書では「Java SE 10~13の新機能」と「開発中の機能」を取り上げています。取り上げるテーマは、以下のとおりです。

型推論、アプリケーション・クラスデータ共有、ガベージコレクタ、ラムダ式、ラムダパラメータ、enum、データクラス、テキストブロック、パターンマッチング、など

機能の内容だけでなく、背景、使い方、ユースケースも適宜、説明しています。本書は、機能拡張のサイクルを加速させるJava SEのアップデートを確認したい読者にとって、最適な一冊です。

書誌情報

  • 著者: Mala Gupta(著), 柴田 芳樹(訳)
  • 発行日: (紙書籍版発行日: 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 まとめ

付録A Amberプロジェクト用のJDKのビルド手順

索引

著者/訳者紹介

Home 書籍一覧 新世代Javaプログラミングガイド[Java SE 10/11/12/13と言語拡張プロジェクト] ▲ ページトップへ戻る