https://github.com/HyonHyonKOR/Thisisjava/tree/main/Chapter5
参照型
Javaのデータータイプには基本型(Primitive type)と参照型(reference type)がある。
基本型は以前勉強した、整数型、実数型、論理型がある。
参照型にはインターフェース型、配列型、クラス型がある。
基本型の変数はその値が入っている。
しかし、参照型の変数は値ではなく、オブジェクトのアドレスが入っている。
そのアドレスを参照し、値を代入したり、呼び出すため、参照型と言う。
変数は基本的にスタックに存在し、基本型の場合は値もスタックに保存されているが、
参照型の場合、スタックにメモリアドレスがあり、そのアドレスを参照して、
ヒープにある参照型の値にアクセスする。その値が入っているところがオブジェクトだ。
NullPointer Exception
nullはまだヒープメモリのアドレスを持っていないということを意味する値だ。
変数が参照できるオブジェクトのアドレスがないため、値を代入することもできない。
1)
String hobby = "여행";
hobby = null;
2)
String hobby = "여행";
hobby = "영화";
このように既存の参照するオブジェクトの住所(null)を失ったり、他のオブジェクト("영화")の住所を入れることで、
最初のStringオブジェクト"여행"は参照がなくなった。
これにより、該当オブジェクトは自動的に消滅され、このようなjavaの機能をGarbage Collectorという。
String
文字列リテラルの処理
https://starkying.tistory.com/entry/what-is-java-string-pool
String Constant Pool이란? | Java String Pool
Java에서 String 객체를 생성하는 방법은 2가지가 있다. 첫번째는 String literal, 즉 큰 따옴표("")를 사용하는 것이고, 두번째는 new 연산자를 사용하는 것이다. 두 방법에는 어떤 차이가 있을까? 간단한
starkying.tistory.com
基本的に同じStringリテラルはHeap領域のString constant Poolに生成される。
<同じString pool>
String a = "yes"
String b = "yes"
しかし、new演算子を通してインスタンスを作成する場合、異なるString poolに保存されるため、
メモリアドレスも異なるようになり、メモリ効率にはよくない。
METHOD
indexOf(); 特定な文字列が何番インデックスから始めるかをリータンする。
例) String str ="Hello world"
int result = str.indexOf("Hello");
System.out.println(result);
0
例) String str ="Hello world"
int result = str.indexOf("hello");
System.out.println(result);
-1
indexOfメッソドに指定したメッソドがない場合は、-1をリータンする。
contains(); 特定な文字列を含めているかどうかをチェックし、trueかfalseにreturnする。
例) String str ="Hello world"
boolean result = str.contains("hello");
System.out.println(result);
false
split(); delimeterがあるところを分離する。主に配列を使用する。
例)String str="I.LOVE.YOU"
String[] arr=str.split(".");
arr[0] arr[1] arr[2]
I LOVE YOU
'IT自主学習 (2023.05.23~) > Java(2023.05.23~)' 카테고리의 다른 글
プログラミング自主学習 36日目 coding test 1問題 (0) | 2023.07.01 |
---|---|
プログラミング自主学習 35日目 参照型(配列) (0) | 2023.06.30 |
プログラミング自主学習 33日目 Continue/全体復習 (0) | 2023.06.28 |
プログラミング自主学習 32日目 do-while/break (0) | 2023.06.27 |
プログラミング自主学習 31日目 ビット論理演算子/ビット移動演算子/代入演算子/条件演算子(三項演算子)/条演算の方向性と優先順位/Switch (0) | 2023.06.26 |