フィールド
・クラスで宣言した変数名
・レコードを抗セする単位。
(その他の意味 分野・領域など)
javaコマンド
Javaアプリを起動するコマンド。
(Javaプログラムを実行する)
コマンドのオプション
オプション | 概要 |
---|---|
-classpath | 関連するclassファイルの検索先 |
--module-path | モジュールの検索先 |
-jar | jarファイルを実行 |
-version | Javaバージョンを表示 |
例:Test.jarを実行する例。パラメーターとして「太郎」を設定。
> java -jar Test.jar "太郎"
※その他コマンド系は、またそのうち纏めて記述します。
JVM(Java Vitual Machine)
Javaのプログラムを動かすためのソフトウエア。
その他の言い方として、「Java仮想マシン」「JavaVM」
Javaは、どのマシンでもJavaが動作することを思想として作られた言語。
JVMの仕組み
①Javaプログラム⇒②JVM⇒③OS
①を解釈し、③のOSで実行可能な形式のコードに変換して動作させる。
②のJVMはJavaで作ったプログラムをプラットフォームに依存しないで動かすために必須ということ。
①から②の際にテキストコードをバイナリコード(マシン語)に変換
②から③の際にバイナリコードを読み込んでネイティブコードに変換
JVMの構成
大まかに3つに分けた領域が存在する。
1.New領域
2.Old領域
3.Permanent領域
がある。
1から2の領域ではヒープ。
3の領域では非ヒープ領域。
ヒープ
OSやアプリケーションなどのシステムが利用するメモリ領域のこと。
※JVMのヒープ領域はオプションで自由に設定を変更可能。
1.New領域
⇒更に3つの領域に分類される。
⇒オブジェクトがインスタンス化された際にEden領域に配置
⇒Edenのメモリがいっぱいになると、オブジェクト退避のためにFrom領域とTo領域に格納。
2.Old領域
⇒New領域に格納されているオブジェクトで使用期間が長い情報が管理されている。
⇒OldがいっぱいになるとFullGCと呼ばれる処理が頻繁に起こる。
※FullGCは重い処理の為実行されている間はシステムが止まる。
3.Permanent領域
⇒クラスやメソッドなどの情報が格納。
【補足】
GCはガーベージコレクションの略。
⇒メモリ領域中の使用済みのメモリ領域を整理し、空き領域を作ること