์ฐธ์กฐ ํ์ (Reference Type)
- ์ฐธ์กฐ ํ์ ์ ๋ณ์์ ์ค์ ๊ฐ์ด ์ ์ฅ๋ ์ฃผ์ ์ ์ฅ
(๊ธฐ๋ณธ ํ์ ์ ์ค์ ๊ฐ ์ ์ฅ)
- ๋ฐฐ์ด ํ์ , ์ด๊ฑฐ ํ์ , ํด๋์ค, ์ธํฐํ์ด์ค, String ๋ฌธ์์ด์ด ์๋ค.
- ์คํ ์์ญ์ ํ ์์ญ์ ๊ฐ์ฒด ์ฃผ์๋ฅผ ๊ฐ์ง.
- ์ฐธ์กฐํ ํ์ ์ ์ด๊ธฐ๊ฐ์ผ๋ก null ์ฌ์ฉ ๊ฐ๋ฅ(๊ธฐ๋ณธํ ํ์ ์ 0)
๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
๋ฉ์๋ ์์ญ(static)
: JVM์ด ์์ํ ๋ ์์ฑ๋๊ณ ๋ชจ๋ ์ค๋ ๋๊ฐ ๊ณต์ ํ๋ ์์ญ
ํ ์์ญ(heap)
: ๊ฐ์ฒด์ ๋ฐฐ์ด์ด ์์ฑ๋๋ ์์ญ, ํ ์์ญ์ ์์ฑ๋ ๊ฐ์ฒด์ ๋ฐฐ์ด์ ์คํ(stack)์์ญ์ ๋ณ์๋ ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋์์ ์ฐธ์กฐ
์ฐธ์กฐํ๋ ๋ณ์๋ ํ๋๊ฐ ์๋ค๋ฉด ์๋ฏธ ์๋ ๊ฐ์ฒด๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ฐ๋ ๊ธฐ๋ก ์ทจ๊ธํ๊ณ JVM์ Garbage Collector๋ฅผ ์คํ์์ผ ์ค๋ ๊ธฐ ๊ฐ์ฒด๋ฅผ ํ์์ญ์์ ์๋์ผ๋ก ์ ๊ฑฐํจ
์คํ ์์ญ(stack)
: ๊ฐ ์ค๋ ๋๋ง๋ค ํ๋์ฉ ์กด์ฌํ๋ฉฐ ์ค๋ ๋๊ฐ ์์๋ ๋ ํ ๋นํ๋ฉฐ, ๋ฉ์๋๋ฅผ ํธ์ถํ ๋๋ง๋ค ํ๋ ์์ ์ถ๊ฐํ๊ณ ๋ฉ์๋๊ฐ ์ข ๋ฃ๋๋ฉด ํด๋น ํ๋ ์์ ์ ๊ฑฐํ๋ ๋์ ์ํ
๋ณ์๋ ์ ์ธ๋ {} ์์์๋ง ์คํ์ผ๋ก ์กด์ฌํ๊ณ {}์ ๋ฒ์ด๋๋ฉด ์คํ์์ ์ ๊ฑฐ๋จ.
์ฆ, ๋ฉ์๋/if๋ฌธ/for๋ฌธ ๋ฑ ๋ด๋ถ์์ ์์ฑ๋ ๋ณ์๋ ํด๋น ๋ก์ปฌ ๋ณ์ ์คํ์๋ง ์กด์ฌํ์ฌ ํด๋น ๋ธ๋ก์ ๋น ์ ธ ๋์ค๊ฒ ๋๋ฉด ์ ๊ฑฐ๊ฐ ๋์ด ์ธ๋ถ์์๋ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅ ํจ.
์ฐธ์กฐ๋ณ์์ ==, != ์ฐ์ฐ
์ฐธ์กฐ ํ์ ๋ณ์๋ค ๊ฐ์ ==,!= ์ฐ์ฐ์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋์ง ํ์ธํ ๋ ์ฌ์ฉํจ.
public class RefType {
public static void main(String[] args) {
String name1 = "์ง๋ถ์ฐ";
String name2 = "์ง๋ถ์ฐ";
String name3 = new String("์ง๋ถ์ฐ");
if(name1 == name3) { // ๊ฐ์ฒด ์ฃผ์๊ฐ ๊ฐ์์ง ํ์ธ.
System.out.println("๋๊ฐ์ ์ด๋ฆ์ ๋ํ ์ฐธ์กฐ๊ฐ ๊ฐ์");
} else System.out.println("๋๊ฐ์ ์ด๋ฆ์ ๋ํ ์ฐธ์กฐ๊ฐ ๋ค๋ฆ"); // ์คํ๊ฒฐ๊ณผ
if(name1 == name2) { // ๊ฐ์ฒด ์ฃผ์๊ฐ ๊ฐ์์ง ํ์ธ.
System.out.println("๋๊ฐ์ ์ด๋ฆ์ ๋ํ ์ฐธ์กฐ๊ฐ ๊ฐ์"); // ์คํ๊ฒฐ๊ณผ
} else System.out.println("๋๊ฐ์ ์ด๋ฆ์ ๋ํ ์ฐธ์กฐ๊ฐ ๋ค๋ฆ");
if(name1.equals(name3)) { // ์ฐธ์กฐ๋ณ์์ ์ค์ ๊ฐ์ด ๊ฐ์์ง ํ์ธ.
System.out.println("๋๊ฐ์ ์ด๋ฆ์ ๋ด์ฉ์ด ๊ฐ์"); // ์คํ๊ฒฐ๊ณผ
} else System.out.println("๋๊ฐ์ ์ด๋ฆ์ ๋ด์ฉ์ด ๋ค๋ฆ");
}
}
'๐๏ธ Backend > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฐ(Java) - 1์ฐจ์ ๋ฐฐ์ด ์์ (1) (0) | 2023.01.08 |
---|---|
์๋ฐ(Java) - ๋ฐฐ์ด๊ณผ ๋ฌธ์์ด (2) ๋ฐฐ์ด (0) | 2023.01.07 |
์๋ฐ(Java) - ํ์์ ๋ณด ์ถ๋ ฅํ๊ธฐ (2) | 2023.01.05 |
์๋ฐ(Java) - ์ ์ด๋ฌธ (3)์กฐ๊ฑด๋ฌธ(for) + ์ค์ต ์์ (๋ณ ์ฐ๊ธฐ, ์ฌ๊ฐํ ๋ง๋ค๊ธฐ, ์ฃผ์ฌ์ ๊ฒ์) (0) | 2023.01.05 |
์๋ฐ(Java) - ์ ์ด๋ฌธ (2)์กฐ๊ฑด๋ฌธ(switch, while) + ์ค์ต์์ (1) | 2023.01.04 |