Notice
Recent Posts
Recent Comments
ยซ   2024/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
In Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

A Joyful AI Research Journey๐ŸŒณ๐Ÿ˜Š

[27] 230206 Java Ch. 5 ์ฐธ์กฐ ํƒ€์ž…: 1. ์ฐธ์กฐ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ๋ณ€์ˆ˜ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 27์ผ] ๋ณธ๋ฌธ

๐ŸŒณBootcamp Revision 2023โœจ/Spring Framework, Java

[27] 230206 Java Ch. 5 ์ฐธ์กฐ ํƒ€์ž…: 1. ์ฐธ์กฐ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ๋ณ€์ˆ˜ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 27์ผ]

yjyuwisely 2023. 2. 6. 12:50

230207 Mon 27th class

Ch. 5 ์ฐธ์กฐ ํƒ€์ž…
์ง„๋„: p. 164 ~ (๊ต์žฌ: ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ž๋ฐ”, ์ €์ž: ์‹ ์šฉ๊ถŒ)

 

ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ž๋ฐ” | ์‹ ์šฉ๊ถŒ - ๊ต๋ณด๋ฌธ๊ณ 

ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ž๋ฐ” | ํ˜ผ์ž ํ•ด๋„ ์ถฉ๋ถ„ํ•˜๋‹ค! 1:1 ๊ณผ์™ธํ•˜๋“ฏ ๋ฐฐ์šฐ๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž์Šต์„œ (JAVA 8 &11 ์ง€์›) ์ด ์ฑ…์€ ๋…ํ•™์œผ๋กœ ์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๋Š” ์ž…๋ฌธ์ž๊ฐ€ ‘๊ผญ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ์ œ๋Œ€๋กœ’ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„

product.kyobobook.co.kr

์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๊ธฐ์–ตํ•  ๊ฒƒ์„ ์ •๋ฆฌํ–ˆ๋‹ค. 


์ง€๋‚œ ์ˆ˜์—… ๋•Œ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๋‹ค์‹œ ๊ธฐ์–ตํ•  ๊ฒƒ

๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜(byte, char, short, int, long, float, double, boolean)์˜ ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ์—๋Š” == ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ
์ฐธ์กฐ ํƒ€์ž…์ธ String ๋ณ€์ˆ˜๋ฅผ ๋น„๊ตํ•  ๋•Œ๋Š” equals() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

name == "์ •์ž๋ฐ”" (X)
name.equals("์ •์ž๋ฐ”") (O)

Ch. 5 ์ฐธ์กฐ ํƒ€์ž…

์ฑ…์˜ ๋ชฉ์ฐจ
05-1 ์ฐธ์กฐ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ๋ณ€์ˆ˜
05-2 ๋ฐฐ์—ด
05-3 ์—ด๊ฑฐ ํƒ€์ž…

5.1 ์ฐธ์กฐ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ๋ณ€์ˆ˜ p. 164

1) ๊ธฐ๋ณธ ํƒ€์ž…(primitive type)๊ณผ ์ฐธ์กฐ ํƒ€์ž…(reference type) p. 165

๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜: byte, short, char, int, long, float, double, boolean
์‹ค์ œ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.
์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋…ผ๋ฆฌ ๋ฆฌํ„ฐ๋Ÿด์„ ์ €์žฅํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. 

int age = 25;
double price = 100.5;

 

์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜: ๊ธฐ๋ณธ ํƒ€์ž…์„ ์ œ์™ธํ•œ ๋ฐฐ์—ด(ex. int[] arrField), ์—ด๊ฑฐ(ex. enum), ํด๋ž˜์Šค(ex. String referenceField), ์ธํ„ฐํŽ˜์ด์Šค
๊ฐ์ฒด(object)์˜ ๋ฒˆ์ง€๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. 
(์ฐธ์กฐ: ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ)
๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฒˆ์ง€๋ฅผ ๋ณ€์ˆ˜ ์•ˆ์—์„œ ์ €์žฅํ•œ๋‹ค. 

String name = "์‹ ์šฉ๊ถŒ";
String hobby = "๋…์„œ";

An interface is a completely "abstract class" that is used to group related methods with empty bodies:
To achieve security - hide certain details and only show the important details of an object (interface).
์ฐธ๊ณ : https://www.w3schools.com/java/tryjava.asp?filename=demo_interface


2) ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์˜์—ญ p. 166

 JVM(์ž๋ฐ” ๊ฐ€์ƒ ๊ธฐ๊ณ„: Java virtual machine)์€ ์šด์˜์ฒด์ œ์—์„œ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋ฉ”์„œ๋“œ ์˜์—ญ, ํž™ ์˜์—ญ, ์Šคํƒ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
(๋ฉ”๋ชจ๋ฆฌ ์ž๋™ ์ •๋ฆฌ by JVM
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด JVM์€ garbage collection process๋ฅผ ํ†ตํ•ด Heap์„ ์ž๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.)

- ๋ฉ”์„œ๋“œ ์˜์—ญ(Method Area)์—๋Š” ์ •์  ํ•„๋“œ, ์ƒ์ˆ˜, ๋ฉ”์„œ๋“œ ์ฝ”๋“œ, ์ƒ์„ฑ์ž ์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•˜๋ฉฐ, (๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.) 
- ํž™ ์˜์—ญ(Heap Area)์—๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
- ์Šคํƒ ์˜์—ญ(Stack)์—๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

JVM ์Šคํƒ ์˜์—ญ
JVM ์Šคํƒ์€ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ํ”„๋ ˆ์ž„(Frame)์„ ์ถ”๊ฐ€(push)ํ•˜๊ณ 
๋ฉ”์„œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ์ œ๊ฑฐ(pop)ํ•˜๋Š” ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

ํ”„๋ ˆ์ž„ ๋‚ด๋ถ€์—๋Š” ๋กœ์ปฌ ๋ณ€์ˆ˜ ์Šคํƒ์ด ์žˆ๋Š”๋ฐ, ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜์™€ ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€(push)๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ(pop)๋œ๋‹ค.  

์Šคํƒ ์˜์—ญ์— ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ์€ ์ดˆ๊ธฐํ™”๊ฐ€ ๋  ๋•Œ, ์ฆ‰ ์ตœ์ดˆ๋กœ ๋ณ€์ˆ˜์— ๊ฐ’์ด ์ €์žฅ๋  ๋•Œ์ด๋‹ค.
๋ณ€์ˆ˜๋Š” ์„ ์–ธ๋œ ๋ธ”๋ก ์•ˆ์—์„œ๋งŒ ์Šคํƒ์— ์กด์žฌํ•˜๊ณ  ๋ธ”๋ก์„ ๋ฒ—์–ด๋‚˜๋ฉด ์Šคํƒ์—์„œ ์ œ๊ฑฐ๋œ๋‹ค. 



3) ์ฐธ์กฐ ๋ณ€์ˆ˜ ==, != ์—ฐ์‚ฐ p. 168

๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜์˜ ==, != ์—ฐ์‚ฐ์€ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๊ฐ™์€์ง€, ์•„๋‹Œ์ง€๋ฅผ ์กฐ์‚ฌํ•˜์ง€๋งŒ
์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๋“ค ๊ฐ„์˜
==, != ์—ฐ์‚ฐ์€ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š”์ง€, ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š”์ง€ ์•Œ์•„๋ณผ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ํž™ ์˜์—ญ์˜ ๊ฐ์ฒด ์ฃผ์†Œ์ด๋ฏ€๋กœ ==, != ์—ฐ์‚ฐ์€ ๊ฒฐ๊ตญ ๋ฒˆ์ง€ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๋™์ผํ•œ ๋ฒˆ์ง€ ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. 
๋”ฐ๋ผ์„œ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์„ ๊ฒฝ์šฐ == ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋Š” true์ด๊ณ  != ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋Š” false์ด๋‹ค. 

 

4) null๊ณผ NullPointerException p. 169

์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ(๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ)ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์œผ๋กœ null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 
null ๊ฐ’๋„ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— null๋กœ ์ดˆ๊ธฐํ™”๋œ ์ฐธ์กฐ ๋ณ€์ˆ˜๋Š” ์Šคํƒ ์˜์—ญ์— ์ƒ์„ฑ๋œ๋‹ค. 

NullPointerException์€ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ(Exception: ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋„์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜) ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ null์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๊ฒฝ์šฐ์—๋Š”, ์ฐธ์กฐ ๊ฐ์ฒด๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. 
๋งŒ์•ฝ null์ธ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์žˆ์ง€๋„ ์•Š์€ ๊ฐ์ฒด์˜ ํ•„๋“œ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด NullPointerException์ด ๋ฐœ์ƒํ•œ๋‹ค. 

int[] intArray = null;
intArray[0] = 10; //NullPointerException

์œ„ ์ฝ”๋“œ์—์„œ intArray๋Š” ๋ฐฐ์—ด ๋ณ€์ˆ˜์ด๋ฏ€๋กœ ์ฐธ์กฐ ๋ณ€์ˆ˜์ด๋‹ค. ๊ทธ๋ž˜์„œ null๋กœ ์ดˆ๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
์ด ์ƒํƒœ์—์„œ intArray[0]์— 10์„ ์ €์žฅํ•˜๋ ค๊ณ  ํ•˜๋ฉด NullPointerException์ด ๋ฐœ์ƒํ•œ๋‹ค.
intArray ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋ฐฐ์—ด ๊ฐ์ฒด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


String str = null;
System.out.println("์ด ๋ฌธ์ž์ˆ˜: "+str.length()); //NullPointerException

String์€ ํด๋ž˜์Šค์ด๋ฏ€๋กœ ์ฐธ์กฐ ํƒ€์ž…์ด๋‹ค. ๋”ฐ๋ผ์„œ str ๋ณ€์ˆ˜๋„ null๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
str ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” String ๊ฐ์ฒด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ƒํƒœ์—์„œ String ๊ฐ์ฒด์˜ length()๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด NullPointerException์ด ๋ฐœ์ƒํ•œ๋‹ค.
NullPointerException์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ์ถ”์ ํ•ด์„œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

5) String ํƒ€์ž… p. 170

์ผ๋ฐ˜์ ์œผ๋กœ ๋ณ€์ˆ˜์— ๋ฌธ์ž์—ด์„ ์ €์žฅํ•  ๊ฒฝ์šฐ์—๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง์ ‘ String ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. new ์—ฐ์‚ฐ์ž๋Š” ํž™ ์˜์—ญ์— ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž๋กœ ๊ฐ์ฒด ์ƒ์„ฑ ์—ฐ์‚ฐ์ž๋ผ๊ณ  ํ•œ๋‹ค.

String name1 = String("์‹ ์šฉ๊ถŒ");
String name2 = String("์‹ ์šฉ๊ถŒ");
String name3 = new String("์‹ ์šฉ๊ถŒ");

๋™์ผํ•œ String ๊ฐ์ฒด์ด๊ฑด ๋‹ค๋ฅธ String ๊ฐ์ฒด์ด๊ฑด ์ƒ๊ด€์—†์ด ๋‚ด๋ถ€ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” String ๊ฐ์ฒด์˜ equals() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. equals() ๋ฉ”์„œ๋“œ๋Š” ์›๋ณธ ๋ฌธ์ž์—ด๊ณผ ๋งค๊ฐœ๊ฐ’์œผ๋กœ ์ฃผ์–ด์ง„ ๋น„๊ต ๋ฌธ์ž์—ด์ด ๋™์ผํ•œ์ง€ ๋น„๊ตํ•œ ํ›„ true ๋˜๋Š” false๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

์˜ˆ์ œ) ๋ฌธ์ž์—ด ๋น„๊ต

public class P173StringEqualsExample {
	public static void main(String[] args) {
		String strVar1 = "์‹ ๋ฏผ์ฒ ";
		String strVar2 = "์‹ ๋ฏผ์ฒ ";
		
		if(strVar1 == strVar2) {
			System.out.println("strVar1๊ณผ strVar2๋Š” ์ฐธ์กฐ๊ฐ€ ๊ฐ™๋‹ค.");
		}else {
			System.out.println("strVar1๊ณผ strVar2๋Š” ์ฐธ์กฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค.");
		}
	
		if(strVar1.equals(strVar2)) {
			System.out.println("strVar1๊ณผ strVar2๋Š” ๋ฌธ์ž์—ด์ด ๊ฐ™๋‹ค.");
		}
		String strVar3 = new String("์‹ ๋ฏผ์ฒ ");
		String strVar4 = new String("์‹ ๋ฏผ์ฒ ");
		
		if(strVar3 == strVar4) {
			System.out.println("strVar3๊ณผ strVar4๋Š” ์ฐธ์กฐ๊ฐ€ ๊ฐ™๋‹ค.");
		}else {
			System.out.println("strVar3๊ณผ strVar4๋Š” ์ฐธ์กฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค.");
		}
	
		if(strVar3.equals(strVar4)) {
			System.out.println("strVar3๊ณผ strVar4๋Š” ๋ฌธ์ž์—ด์ด ๊ฐ™๋‹ค.");
		}
	}
}

๊ฒฐ๊ณผ) new ์—ฐ์‚ฐ์ž๋กœ String ๊ฐ์ฒด๋ฅผ ๋ณ„๋„๋กœ ์ƒ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฐธ์กฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค. 
๋™์ผํ•œ String ๊ฐ์ฒด์ด๊ฑด ๋‹ค๋ฅธ String ๊ฐ์ฒด์ด๊ฑด ์ƒ๊ด€์—†์ด ๋‚ด๋ถ€ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” String ๊ฐ์ฒด์˜ equals() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

strVar1๊ณผ strVar2๋Š” ์ฐธ์กฐ๊ฐ€ ๊ฐ™๋‹ค.
strVar1๊ณผ strVar2๋Š” ๋ฌธ์ž์—ด์ด ๊ฐ™๋‹ค.
strVar3๊ณผ strVar4๋Š” ์ฐธ์กฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค.
strVar3๊ณผ strVar4๋Š” ๋ฌธ์ž์—ด์ด ๊ฐ™๋‹ค.
์ฐธ์กฐ ๋น„๊ต   0x100 ๋ฌธ์ž์—ด ๋น„๊ต
strVar1 0x100 <--- strVar1 ์‹  ๋ฏผ ์ฒ 
  ๊ฐ™๋‹ค   0x100 strVar1[0] strVar1[1] strVar1[2]
strVar2 0x100 <--- strVar2 ์‹  ๋ฏผ ์ฒ 
        strVar1[0] strVar1[1] strVar1[2]

strVar1๊ณผ strVar2๋Š” ์ฐธ์กฐ๊ฐ€ ๊ฐ™๊ณ  ๋ฌธ์ž์—ด์ด ๊ฐ™๋‹ค.

์–ด๋– ํ•œ ๊ฒฝ์šฐ์—๋„ 2์ž๋ฆฌ ์ด์ƒ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก "0x100"์„ ๋”ํ•ด์ค€๋‹ค.
1์ด๋ผ๋Š” ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ 0x100์„ ๋”ํ•ด์ฃผ๋ฉด 9๋น„ํŠธ์— 1์„ ๋”ํ•ด์ฃผ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

  • ๊ธฐ์กด             : 00000000 0000 0000 0000 0000 0000 0001
  • 0x100 ๋”ํ•จ : 00000000 0000 0000 0000 0001 0000 0001

์ฐธ๊ณ : https://enumclass.tistory.com/268

์ฐธ์กฐ ๋น„๊ต   0x200 ๋ฌธ์ž์—ด ๋น„๊ต
strVar1 0x200 <--- strVar1 ์‹  ๋ฏผ ์ฒ 
  ๊ฐ™๋‹ค   0x300 strVar1[0] strVar1[1] strVar1[2]
strVar2 0x300 <--- strVar2 ์‹  ๋ฏผ ์ฒ 
        strVar1[0] strVar1[1] strVar1[2]

strVar3๊ณผ strVar4๋Š” ์ฐธ์กฐ๊ฐ€ ๋‹ค๋ฅด๊ณ  ๋ฌธ์ž์—ด์ด ๊ฐ™๋‹ค.


๋งˆ๋ฌด๋ฆฌ p. 175

6๊ฐ€์ง€ ํ‚ค์›Œ๋“œ๋กœ ๋๋‚ด๋Š” ํ•ต์‹ฌ ํฌ์ธํŠธ

1) ๊ธฐ๋ณธ ํƒ€์ž…: byte, short, char, int, long, float, double, boolean ํƒ€์ž…์„ ๋งํ•˜๋ฉฐ ์ด๋“ค ํƒ€์ž…์˜ ๋ณ€์ˆ˜์—๋Š” ๊ฐ’ ์ž์ฒด๊ฐ€ ์ €์žฅ๋œ๋‹ค.

2) ์ฐธ์กฐ ํƒ€์ž…: ๊ธฐ๋ณธ ํƒ€์ž…์„ ์ œ์™ธํ•œ ๋ฐฐ์—ด, ์—ด๊ฑฐ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์„ ๋งํ•œ๋‹ค.
์ฐธ์กฐ ํƒ€์ž…์˜ ๋ณ€์ˆ˜์—๋Š” ๊ฐ์ฒด์˜ ๋ฒˆ์ง€๊ฐ€ ์ €์žฅ๋œ๋‹ค. ๋ฒˆ์ง€๋กœ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ์˜๋ฏธ์—์„œ ์ฐธ์กฐ ํƒ€์ž…์ด๋ผ๊ณ  ํ•œ๋‹ค.

3) ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์˜์—ญ: JVM(์ž๋ฐ” ๊ฐ€์ƒ ๊ธฐ๊ณ„: Java virtual machine)์€ ์šด์˜์ฒด์ œ์—์„œ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋ฉ”์„œ๋“œ ์˜์—ญ, ํž™ ์˜์—ญ, ์Šคํƒ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
(๋ฉ”๋ชจ๋ฆฌ ์ž๋™ ์ •๋ฆฌ by JVM
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด JVM์€ garbage collection process๋ฅผ ํ†ตํ•ด Heap์„ ์ž๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.)

๋ฉ”์„œ๋“œ ์˜์—ญ์—๋Š” ์ •์  ํ•„๋“œ, ์ƒ์ˆ˜, ๋ฉ”์„œ๋“œ ์ฝ”๋“œ, ์ƒ์„ฑ์ž ์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•˜๋ฉฐ,
ํž™ ์˜์—ญ์—๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
์Šคํƒ ์˜์—ญ์—๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

4) ๋ฒˆ์ง€ ๋น„๊ต: ๋น„๊ต ์—ฐ์‚ฐ์ž(==, !=)๊ฐ€ ๊ธฐ๋ณธ ํƒ€์ž…์—์„œ ์‚ฌ์šฉ๋˜๋ฉด ๊ฐ’์„ ๋น„๊ตํ•˜์ง€๋งŒ, ์ฐธ์กฐ ํƒ€์ž…์—์„œ ์‚ฌ์šฉ๋˜๋ฉด ๋ฒˆ์ง€๋ฅผ ๋น„๊ตํ•œ๋‹ค. 
==์ด true๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๋œป์ด๊ณ 
false๊ฐ€ ๋‚˜์˜ค๋ฉด ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.

5) null: ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์œผ๋กœ null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 
null ๊ฐ’๋„ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— null๋กœ ์ดˆ๊ธฐํ™”๋œ ์ฐธ์กฐ ๋ณ€์ˆ˜๋Š” ์Šคํƒ ์˜์—ญ์— ์ƒ์„ฑ๋œ๋‹ค. 

6) NullPointerException: ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ null์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๊ฒฝ์šฐ์—๋Š”, ์ฐธ์กฐ ๊ฐ์ฒด๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. 
๋งŒ์•ฝ null์ธ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์žˆ์ง€๋„ ์•Š์€ ๊ฐ์ฒด์˜ ํ•„๋“œ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด NullPointerException์ด ๋ฐœ์ƒํ•œ๋‹ค. 


728x90
๋ฐ˜์‘ํ˜•
Comments