概要

  1. Java VM [Java Virtual Machine]
    • Java 仮想マシン
    • Java の実行環境
    • アーキテクチャの違いを吸収し、異なる環境でも同一のコードを実行できる
  2. Java Applet
    • Web ブラウザの Java VM で動作
  3. Java RMI [Java Remote Method Invocation]
  4. JDBC [Java Database Connectivity]

JRE [Java Runtime Environment]

Java SE [Java Platform, Standard Edition]

JDK 1.0

J2SE 5.0

Java SE 7

Java SE 8

Java SE 11

Java SE 17

Java SE 21

Java EE [Java Platform, Enterprise Edition]

  1. EJB [Enterprise JavaBeans]
    • ビジネスロジック層で利用
    • 表示に関する処理はできない
  2. Java Servlet
    • プレゼンテーション層で利用
    • CGI 同様、インタラクティブなページの表示に利用される
    • メモリ上に常駐するためレスポンスが早い
  3. JSP [JavaServer Pages]
    • Java Servlet の延長線上の技術
    • HTML に Java のコードを埋め込んだもの
  4. JMS [Java Messaging Service]
  5. コネクション プール
Java ApplicationEJBJava ServletJSP
EJB ContainerServlet ContainerJSP Container
Java VM
OS

OpenJDK

Amazon Corretto

Microsoft Build of OpenJDK

GCJ [GNU Compiler for the Java]

用語

メモリ管理

ヒープ領域

GC [Garbage Collection]

Mark and Sweep

  1. アプリケーションが使用しているオブジェクトを調べマーキングする (Mark)
  2. マーキングされなかったオブジェクトは未使用と判断し破棄する (Sweep)

コピー GC

世代別 GC [Generational Garbage Collection]

  1. オブジェクトはまず Eden に入る
  2. Eden がいっぱいになると Scavenge GC を実行する
    • Eden 領域中の使用中オブジェクトを Survivor 領域にコピーし、Eden 領域を破棄する
  3. Survivor 領域がいっぱいになると再度 Scavenge GC を実行する
    • Eden 領域中の使用中オブジェクトを別の Survivor 領域にコピーし、 Eden 領域を破棄する
    • Survivor 領域中の使用中オブジェクトも別の Survivor 領域にコピーし、元の Survivor 領域を破棄する
    • Scavenge GC で 32 回生き残ったオブジェクトは、殿堂入り (Tenure) となり Old 領域に移動される
  4. Old 領域がいっぱいになると Full GC を実行する

Serial GC

Parallel GC

CMS GC [Concurrent Mark Sweep Garbage Collection]

  1. アプリケーションが直接参照しているオブジェクトをマーキング (Initial Mark)
    • この時アプリケーションは停止する
  2. アプリケーションが間接参照しているオブジェクトをマーキング (Concurrent Mark)
    • この時アプリケーションは停止しない
  3. Concurrent Mark は不整合が発生する可能性があるためチェックする (Remark)
    • この時アプリケーションは停止する
  4. 最後にマーキングされなかったオブジェクトを破棄する (Concurrent Sweep)

G1 GC [Garbage 1st Garbage Collection]

 
 

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-01-05 (水) 20:43:46