私は勉強します-第1週の課題
勉強したい-9ページ
画像-drawを作成します。io
第1週の課題:JVMとは何か、javaコードをどのように実行するか。
Class Loader
Javaファイルをjavacにコンパイルするとバイトコードが生成され、コンパイル時ではなく実行時にメモリにアップロードして実行される部分がClass Loaderになります.クラスローダの実行順序は下図のように、大きく分けてLoad->Link->Initializeの3つのステップに分けられ、リンクのプロセスを3つのステップ(Verify->Prepare->Resolution)に細分化し、合計5つのステップに分けられます.
Execution Engine
Execution Engineはclass loaderによって配備されたクラスを解析して実行し、割り込みとJITで実行します.
Runtime Data Area
Runtime Data Areaは、JVMがプログラムを実行するためにオペレーティングシステムから割り当てられたメモリ領域である.
以下に示すように、5つの領域に分けられます. Method Area Heap JVM Stacks PC Registers Native Method Stacks
Garbage Collector
Garbage CollectorはGCと略称し、割り当てられたメモリ領域で使用できない領域を動的に検出して解除する機能です.このため,Javaプログラムを開発する際,開発者は動的に割り当てられたメモリの解放をGC処理に任せることができ,開発に集中できる.
JDK
JDKはJava開発キットの略で、JDKには開発プログラムに必要なJVM、ライブラリAPI、コンパイラなどの開発ツールが含まれています.
JRE
JREはJavaランタイム環境の略で、JREにはプログラムを実行するために必要なJVMとライブラリAPIが含まれています. Javaプログラムを開発せず、開発したプログラムのみを実行したい場合は、JREのみをインストールしてもかまいません.
これがジャワ(神龍ロールケーキ、単色メディア)
バイトコード-ツリーウィキ
バイトコード-ウィキペディア
JITコンパイル-ウィキペディア
JVMコンポーネント
JVMコンポーネント2
画像-drawを作成します。io
第1週の課題:JVMとは何か、javaコードをどのように実行するか。
JVMとは
JVMはJava仮想マシンの略で、Javaプログラムは完全なマシン言語ではなくバイトコードなので、バイトコードを解釈して実行する仮想オペレーティングシステムが必要です.これはJVMで、各オペレーティングシステムを単独で開発するJavaプログラムと比較して、Javaプログラムを複数のオペレーティングシステム上で同じ結果を実行するために、オペレーティングシステムとJavaプログラムを中継するJVMを一緒に配置するように設計されています.そのため,開発者はオペレーティングシステムに関係のないJavaプログラムを開発することができる.
이미지1. 자바 프로그램 실행 단계
コンパイル方法
コンパイルとは、ある言語のコードを別の言語に変換するプロセスであり、Javaでは、「画像1」に示すように、コンパイラの役割はソースファイル(.java)をバイトコード(.class)に変換することである. <Hello.java>
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
JAvaコードhello.Javaをコンパイルおよび実行する方法は、次のとおりです.
実行方法
이미지2. Bash shell에서 자바 코드 컴파일 및 실횅
이미지3. 윈도우의 명령 프롬프트에서 자바 코드 컴파일 및 실행
イメージ2.3から見る『javac hello』Java」でコンパイルするとjavaです.クラスバイトコードを生成し、「java hello」として「hello world!」と実行します.出力が確認できるのは.
バイトコードとは
バイトコードとは、人間(プログラマー)が作成したソースコードを仮想マシンが理解できる中間コードにコンパイルすることである.△ウィキペディアでは、これはバイナリ表現だと説明しています.
イメージ2 3のハローclassはバイトコードと呼ぶことができる.
JITコンパイラは何ですか。どのように動作していますか。
JITはJust In Timeの略で、JITコンパイラは実行時(実際に実行)にキャッシュしてマシン言語のコードに変換するため、再利用時に再コンパイルする必要がなく、JVM内部の最適化によりJITコンパイラの性能を向上させる.
이미지4. 컴파일 타임과 런타임에 동작하는 자바 프로그램 동작 과정
JVMコンポーネント
이미지1. 자바 프로그램 실행 단계
<Hello.java>
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
이미지2. Bash shell에서 자바 코드 컴파일 및 실횅
이미지3. 윈도우의 명령 프롬프트에서 자바 코드 컴파일 및 실행
이미지4. 컴파일 타임과 런타임에 동작하는 자바 프로그램 동작 과정
Javaファイルをjavacにコンパイルするとバイトコードが生成され、コンパイル時ではなく実行時にメモリにアップロードして実行される部分がClass Loaderになります.クラスローダの実行順序は下図のように、大きく分けてLoad->Link->Initializeの3つのステップに分けられ、リンクのプロセスを3つのステップ(Verify->Prepare->Resolution)に細分化し、合計5つのステップに分けられます.
이미지5. 클래스 로더 세부 실행 단계
Execution Engine
Execution Engineはclass loaderによって配備されたクラスを解析して実行し、割り込みとJITで実行します.
Runtime Data Area
Runtime Data Areaは、JVMがプログラムを実行するためにオペレーティングシステムから割り当てられたメモリ領域である.
以下に示すように、5つの領域に分けられます.
Garbage Collector
Garbage CollectorはGCと略称し、割り当てられたメモリ領域で使用できない領域を動的に検出して解除する機能です.このため,Javaプログラムを開発する際,開発者は動的に割り当てられたメモリの解放をGC処理に任せることができ,開発に集中できる.
이미지6. JVM 구조
JDKとJREの違い
JDKはJava開発キットの略で、JDKには開発プログラムに必要なJVM、ライブラリAPI、コンパイラなどの開発ツールが含まれています.
JREはJavaランタイム環境の略で、JREにはプログラムを実行するために必要なJVMとライブラリAPIが含まれています.
이미지7. JDK & JRE 포함 관계
References
これがジャワ(神龍ロールケーキ、単色メディア)
バイトコード-ツリーウィキ
バイトコード-ウィキペディア
JITコンパイル-ウィキペディア
JVMコンポーネント
JVMコンポーネント2
Reference
この問題について(私は勉強します-第1週の課題), 我々は、より多くの情報をここで見つけました https://velog.io/@javavoy/스터디할래-1주차-과제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol