クロスプラットフォーム
- なぜクロスプラットフォームなのか
javaによってコンパイルされたファイルは機械語ではなく、.classという接尾辞を持つバイトコード・ファイルであり、異なるプラットフォームで実行するために異なるプラットフォームで実装された仮想マシンによって対応する機械語に解釈されます。
java言語の実行プロセス:
コンパイル -> 解釈 -> 実行
| |
.classファイル マシンコード
- jvm 知識の全体的な導入
- jvmとは
Javaの仮想マシンは、Javaバイトコードの仮想マシンを実行して、異なるシステムの異なる実装を持って、目的は、同じバイトコードを使用することです、異なるシステムで同じ結果があります。
2.jvm、jdk、jreの違い
jre: jvm+(javaライブラリ、javaコマンド) 機能: javaプログラムの実行のみ。
jdk: jre+ 機能: プログラムの作成とコンパイル
3. jvm共存の解釈とコンパイルの理解方法
問題の背景:Javaプログラムのランタイムは、jvmは、このプロセスの実行が比較的遅くなります説明するために行ごとにインタプリタを介して、.classファイルをロードします
jvmのJITパフォーマンス最適化:頻繁に呼び出されるメソッドやコードのブロック(ホットスポット・コードなど)については、JITがコンパイルを完了したときに、バイトコードに対応するマシン・コードを保存し、次回から直接使用できるようにします。
jvm起動時の古いインタプリタとコンパイラのパラメータ制御:
-Xint:解釈実行のみ
-Xcomp:インタープリターを閉じます。
HotSpotの慣性評価:jvmはコードがどのように実行されたかに基づいて情報を収集し、それに応じてコードを最適化します。
jdk 9の新しいコンパイルモード、AOT:バイトコードを直接マシンコードにコンパイルし、JITプリヒートのオーバーヘッドを回避します。
JDKはレイヤーコンパイルとAOTをサポートしていますが、AOTのコンパイル品質はJITほど良くありません。
Q: 1.JITウォームアップとは何ですか?
2.JDKレイヤーコンパイルとは
オブジェクト指向
- カプセル化
カプセル化は、オブジェクトのプロパティをプライベートなものにする一方で、外部からアクセスできるメソッドを提供します。
- 継承
1.サブクラスは親クラスの非プライベートメソッドを持ちます。
2.サブクラスは独自の属性とメソッドを持つことができます。
3.サブクラスは親クラスのメソッドをオーバーライドできます。
- ポリモーフィズム
一般的な説明:親クラスへの参照は、子クラスのオブジェクトを指します。
公式の説明:定義された参照変数が参照する特定の型と呼び出されるメソッドは、プログラミング時には決定されず、実行時にのみ決定されます。
Javaでポリモーフィズムを実装する2つの方法:
親クラスを継承し、インターフェイスを実装します。
マルチスレッドのサポート
- どのようにサポートするには
- ++
信頼性
- 反映方法
セキュリティ
- 反映方法
ネットワークプログラミングのサポート
- 具体的にはどのような方法で実施されるのでしょうか。
言語機能
- リフレクション
- ジェネリック
- lambda