[JAVA]Java-リファレンスタイプです


データ型分類

  • 参照タイプとして宣言された変数は、スタックメモリ内のオブジェクトのアドレスを値としてスタックに格納されます.ex)配列、列挙、クラス、インタフェース
  • メモリ使用領域

  • java.JVMをexeで起動すると、図に示すように、JVMはオペレーティングシステムが割り当てたメモリ領域(Runtime Data Area)を詳細領域に分割します.
  • メソッド領域
  • コードで使用されるクラス(.class)をクラスローダに読み込み、実行時定数プール、フィールドデータ、メソッドデータ、メソッドコード、ジェネレータコードなどをクラス別に格納します.
  • メソッド領域は、JVM起動時に作成され、すべてのスレッドが共有されます.
  • 臀部領域
  • オブジェクトと配列の作成領域hip領域で作成されたオブジェクトと配列は、JVMスタック領域の変数または他のオブジェクトのフィールドで参照されます.
  • のフィールドが参照されていない場合は、GC(Garbage Collector)を使用してhip領域からオブジェクトを自動的に削除します.
  • JVMスタック領域
  • スタック領域は、スレッドの開始時に割り当てられる各スレッドに1つあります.
  • スタックは、メソッドが呼び出されるたびに、フレームの追加(プッシュ)およびメソッドの終了時にフレームを削除する操作を実行する.
  • フレームの内部には、ローカル変数スタックがあり、変数を追加または削除します.この領域に変数を作成した時点は、初期化時、すなわち最初に変数に値を格納します.変数は宣言されたブロックにのみ存在し、ブロックを離れるとスタックから削除されます.
    プロセス:オペレーティングシステム上で実行されるプログラム
    スレッド:プロセス内で独立して実行される作業ユニット
    フレームワーク:スタックに入り、メソッドを呼び出すたびに作成され、メソッドのステータス情報が格納されます.
  • 参照変数の==、!=えんざん

  • 参照タイプ間の==、!=同じオブジェクトを参照するかどうかを決定します.参照タイプ変数の値はhipzoneオブジェクトのアドレスであるため、最終的には比較アドレス値である.同じアドレス値を持つことは、同じオブジェクトを参照することを意味します.
  • nullとNullPointException

  • 参照タイプ変数はnull値を有し、hip領域でオブジェクトを参照しないことを示すことができる.null値は初期値としても使用できるため、スタック領域でnullで初期化された参照変数が生成されます.
  • 参照タイプ変数を使用すると、オブジェクトが使用されることを意味します.参照タイプ変数にNull値がある場合は、参照するオブジェクトがないため、Null PointException例外が発生します.
  • Stringタイプ

  • 変数が同じ文字列テキストを参照する場合、両方は同じStringオブジェクトを参照します.ただし、new演算子を使用してhip領域に新しいStringオブジェクトを作成すると、異なるStringオブジェクトが参照されます.
  • //두 변수의 객체는 같다
    String name1 = "김아무개";
    String name2 = "김아무개";
    
    //두 변수의 객체는 다르다
    String name1 = new String("김아무개");
    String name2 = new String("김아무개");
  • でも同じオブジェクトでも、比較文字列のみがequals()メソッドを使用します.
  • アレイタイプ

  • 配列は、同じタイプのデータを連続空間に列挙し、各データをインデックスするデータ構造である.
  • int[] num1 = new int[]{1,2,3};
    int[] num2 = new int[3];

    コマンドライン入力

  • Javaクラス実行プログラムを使用する場合、JVMはまず長さ0のString配列を生成し、main()メソッドを呼び出すと各値として渡されます.
  • たじゅうはいれつ

  • の値は、行と列からなる配列が2次元配列であることを示します.
  • int[][] scores = new int[2][3];
    int[][] scores = {{95, 80}, {92 96}};

    拡張FOR文

    for(int score : scores){
    	sum += score;
  • カッコで、変数宣言とコロン(:)および配列を作成し、配列から取り出した値を保存します.for文の実行後、配列にインポートする値があるかどうかを判断し、値がある場合は続行し、ない場合はfor文を終了します.
  • 列挙タイプ

  • は、限定値のみを有するデータ型である.ex)春、夏、秋、冬
  • は、いくつかの列挙定数に1つの定数を格納するデータ型である.
  • 列挙タイプ宣言

  • 列挙タイプに名前を付け、その名前を使用してソースファイルを作成する必要があります.
  • public enumは、列挙タイプを宣言するためのキーワードです.
  • 列挙タイプ値の列挙定数はすべて大文字で記入されます.
  • 列挙定数が複数の単語からなる場合、単語間で直接接続されます.
  • public enum Week{ MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY ...} 

    列挙タイプ変数

    열거타입 변수 = 열거타입.열거상수
    Week today = Week.SUNDAY;