参照タイプ
17218 ワード
📌 参照タイプ
📌 参照タイプと参照変数 Javaのタイプは、基本タイプと参照タイプに分けられます. 参照タイプとは、参照対象番号のタイプ を指す.クラスには、配列、列挙、インタフェース、クラス がある.
デフォルトのタイプ変数は、値をスタックに直接格納します.
しかし、参照タイプではhip領域のデータは番号とともに存在し、スタックのデータは番号のみを参照する形で存在する!
📌 参照変数の===、=!えんざん参照変数では、==、!=意味は同じアドレスを参照しますか?はい. 最終的には同じナンバープレートでしか同じとは言えません! 例を見てみましょう
どうして違うの?>>私たちはnewを利用して単独で発表したからです!hipとスタックにも異なるアドレスがあるので、それぞれ参照し、アドレスが異なる場合は異なる値として認識されることを忘れないでください.
では、どのように解決すればいいのでしょうか.
newを使用せずに宣言!参照タイプはnew宣言を使用し、Stringはjdk 1を使用する必要があります.5以上から、同じ字面の同じアドレスを参考にさせます.△元の住所は元の2倍で、効率が悪い!
同じStringオブジェクトでも他のオブジェクトでも、内部文字列を比較する場合は、Stringオブジェクトのequals()メソッドを使用する必要があります.
📌 nullとNullPointException参照タイプ変数は、オブジェクトを参照しないことを示す空の値を有することができる. NullPointExceptionは最も一般的なエラーです.
つまり、配列変数が参照する配列オブジェクトは存在しません!
もう1つの例は
📌 整列
配列の宣言などのタイプのデータが連続空間にリストするインデックスを作成するデータ構造 .配列は同じタイプのデータしか記憶できず、一旦生成すると長さ を変換できない.アレイ、例えば、 配列は、hip領域で生成され、配列変数がその形式を参照する参照変数である. 🚨 **Nullpoint Exception**
上記で参照する配列オブジェクトがない場合はnullに初期化すればよい
Nullpoint Exceptionが表示されます
→では、どのようにして配列に値を格納しますか?
アレイの作成最初から括弧入力値 を使用する.が宣言されている場合、別の実行文は を含んではいけません.
値のリストがありませんが、将来の値を格納する配列を事前に作成したい場合は、次の操作を行います. Javaアレイは、 を使用して、サイズを変更できないようにコピーします.
📌 参照タイプと参照変数
int age = 25;
double price = 100.5;
String name = "홍길동";
String hobby = "독서";
前述のように、デフォルトタイプ(int、double)、参照タイプ(String)変数に値を割り当てると、デフォルトのタイプ変数は、値をスタックに直接格納します.
しかし、参照タイプではhip領域のデータは番号とともに存在し、スタックのデータは番号のみを参照する形で存在する!
📌 参照変数の===、=!えんざん
public class StringExample {
public static void main(String[] args) {
String name1 = new String("홍길동");
String name2 = new String("홍길동");
if(name1==name2) {
System.out.println("같음");
}
else {System.out.println("다름");}
}
どうして違うの?>>私たちはnewを利用して単独で発表したからです!hipとスタックにも異なるアドレスがあるので、それぞれ参照し、アドレスが異なる場合は異なる値として認識されることを忘れないでください.
では、どのように解決すればいいのでしょうか.
public class StringExample {
public static void main(String[] args) {
// String name1 = new String("홍길동");
// String name2 = new String("홍길동");
String name1 = "홍길동";
String name2 = "홍길동";
if(name1==name2) {
System.out.println("같음");
}
else {System.out.println("다름");}
}
newを使用せずに宣言!参照タイプはnew宣言を使用し、Stringはjdk 1を使用する必要があります.5以上から、同じ字面の同じアドレスを参考にさせます.△元の住所は元の2倍で、効率が悪い!
同じStringオブジェクトでも他のオブジェクトでも、内部文字列を比較する場合は、Stringオブジェクトのequals()メソッドを使用する必要があります.
📌 nullとNullPointException
int[] array = null;
array[0] = 10;
arrayは配列であるため、参照変数であり、参照変数はnullに初期化することができる.異常状態で10を[0]位置に保存しようとすると、NullPointExceptionが発生します.つまり、配列変数が参照する配列オブジェクトは存在しません!
もう1つの例は
String str = null;
System.out.println("총 문자수: "+str.length());
Stringは参照タイプでnullに初期化できます.Stringオブジェクトのlength()メソッドを呼び出すと、NullPointExceptionが発生します.str変数が参照するオブジェクトがないからです!📌 整列
配列の宣言
score[인덱스]
int intrArray[];
int[] intArray;
上記で参照する配列オブジェクトがない場合はnullに初期化すればよい
타입[]변수 = null;
ただし、null初期化変数を変数[インデックス]として値を読み出したり保存したりすると、Nullpoint Exceptionが表示されます
→では、どのようにして配列に値を格納しますか?
アレイの作成
변수 = new 타입[] {값0 값1, 값2, ...};
配列変数타입[] 변수;
변수 = {값0,값1,값2,값3 ...}; //error!
では、どうやって値段をつけますか.→new演算子を使用!String[] names = null;
names = new String[] {"신용권", "홍길동", "감자바"}
NEW演算子を使用したアレイの作成値のリストがありませんが、将来の値を格納する配列を事前に作成したい場合は、次の操作を行います.
타입[] 변수 = new 타입[길이];
int[] intArray = new int[5]; << 5개 인덱스 생김!
모두 null값으로 초기화 된다.
アレイのコピーpublic class ArrayCreateExample {
public static void main(String[] args) {
int[] scores = {95,71,84,93,87};
int sum =0;
//향상된 for문
for(int score : scores){
sum+=score;
}
System.out.println("sum= " +sum);
}}
インデックスが必要なときには使えない次のようなものです.public class ArrayCreateExample {
public static void main(String[] args) {
int[] scores = {95,71,84,93,87};
int sum =0;
for(int i = 0; i<scores.lenght;i++) {
System.out.println("scores["+i+"]:"+scores[i]);
if(i%2==0) {System.out.println("점");}
else {System.out.println();}
for (int score : scores) {System.out.println(score);}
}}
}
Reference
この問題について(参照タイプ), 我々は、より多くの情報をここで見つけました https://velog.io/@cheshirehyun/참조타입テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol