๐Ÿ“š ์ฑ… ์†Œ๊ฐœํ•˜๊ธฐ

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์ž๋ฐ”์™„์ „์ •๋ณต ์ฑ… ๋งํฌ!
ใ„ด ๊น€๋™ํ˜• ์ง€์Œ, ์ด์ง€์Šคํผ๋ธ”๋ฆฌ์‹ฑ

 

: ์ถœ์ฒ˜ ์˜ˆ์Šค24 ํ™ˆํŽ˜์ด์ง€

 

 

์ด ์ฑ…์„ ๊ณ ๋ฅด๊ฒŒ ๋œ ์ด์œ ๋Š” ์นœ๊ตฌ์˜ ์ถ”์ฒœ์ด์—ˆ๋‹ค. ๊ต‰์žฅํžˆ ๊ผผ๊ผผํ•˜๊ฒŒ ์ ํ˜€์žˆ์–ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค๋Š” ์ด์œ ๋กœ ์นœ๊ตฌ๋Š” ์ด ์ฑ…์„ ๊ณจ๋ž๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋‚˜๋„ ๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ๋”ฐ๋ผ์ƒ€๋‹ค. ์‹ค์ œ๋กœ ์ฑ…์„ ์‚ดํŽด๋ณด๋‹ˆ ๊ต‰์žฅํžˆ ๊ผผ๊ผผํ•˜๊ฒŒ ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค. ๋‹ค๋ฅธ ์ฑ…์€ ๋ณธ ์ ์ด ์—†์–ด ๋น„๊ต๊ฐ€ ๋ถˆ๊ฐ€ํ•˜์ง€๋งŒ, ๋‚ด ์ƒ๊ฐ์œผ๋ก  ์ฒ˜์Œ ์ž๋ฐ”๋ฅผ ๊ณต๋ถ€ํ•œ๋‹ค๋ฉด ์ด ์ฑ…์„ ๊ฐ€์ง€๊ณ  ์ถฉ๋ถ„ํžˆ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์„ ๋“ฏ ํ•˜๋‹ค. ๋ชจ๋‘๋“ค ํ™”์ดํŒ…!!

 

 

๐Ÿฐ

 


 

 

โœ”๏ธ  ๊ฐ์ฒด ์ƒ์„ฑ์‹œ ์ฃผ์†Œ๊ฐ’_ 189p

 

• ๊ฐ์ฒด ์•ˆ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ

String str1 = new String("์•ˆ๋…•");
String str2 = str1;
str1 = "์•ˆ๋…•ํ•˜์„ธ์š”";
System.out.println(str1);
System.out.println(str2);

 

new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. new ์—ฐ์‚ฐ์ž๋Š” ์ธ์Šคํ„ด์Šค(๋ฉ”๋ชจ๋ฆฌ ์œ„์— ์˜ฌ๋ผ๊ฐ„ ๊ฐ์ฒด)๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘ ํž™ ์˜์—ญ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›๋Š”๋‹ค. ๊ทธ ๊ณต๊ฐ„์˜ ์ฐธ์กฐ๊ฐ’์„(์—ฌ๊ธฐ์„  str1๊ณผ str2๊ฐ€ ๋œ๋‹ค) ๊ฐ์ฒด์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ฃผ๊ณ  ์ด์–ด์„œ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. str1์— "์•ˆ๋…•"์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์ฒซ๋ฒˆ์งธ๊ฐ€ ๋œ๋‹ค. ๊ทธ ํ›„ ๋‘๋ฒˆ์งธ๊ฐ€ str1์ด str2์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์œผ๋กœ, str2๋Š” "์•ˆ๋…•"์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ์„ธ๋ฒˆ์งธ์— str1์ด "์•ˆ๋…•"์—์„œ "์•ˆ๋…•ํ•˜์„ธ์š”"๋กœ ๋ณ€๊ฒฝ์ด ๋œ๋‹ค. 

์ถœ๋ ฅ์ด ๋  ๋• ์ด ์ˆœ์„œ์— ๋งž์ถฐ ์ถœ๋ ฅ์ด ๋œ๋‹ค. str1์€ ๋งˆ์ง€๋ง‰ ์ฝ”๋“œ "์•ˆ๋…•ํ•˜์„ธ์š”"๋กœ ๋ณ€๊ฒฝ๋œ ๋ฐ”๊ฐ€ ์žˆ์œผ๋‹ˆ "์•ˆ๋…•ํ•˜์„ธ์š”"๋กœ ์ถœ๋ ฅ์ด ๋  ๊ฒƒ์ด๋‹ค. str2๋Š” "์•ˆ๋…•"์ด ์œ ์ž…๋œ ํ›„ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์ด ์—†์œผ๋‹ˆ ์—ฌ์ „ํžˆ "์•ˆ๋…•"์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. 

๋ฉ”๋ชจ๋ฆฌ๋Š” [ ๋ฉ”์„œ๋“œ(ํด๋ž˜์Šค) ์˜์—ญ - ์Šคํƒ ์˜์—ญ  - ํž™ ์˜์—ญ ]์œผ๋กœ ๋˜์–ด์žˆ๋‹ค. ์ด๋•Œ String์€ ๋ฉ”์„œ๋“œ ์˜์—ญ์— ์˜ฌ๋ผ๊ฐ€๊ณ  str1๊ณผ str2์˜ ๋‚ด์šฉ์ด ํž™์˜์—ญ์˜ ๋ช‡ ๋ฒˆ์ง€์— ์žˆ์„ ๊ฑด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์Šคํƒ ์˜์—ญ์— ๋ณด๊ด€ํ•œ๋‹ค. ์ฒ˜์Œ์— ์Šคํƒ ์˜์—ญ์—์„œ 100๋ฒˆ์ง€์— str1์˜ ๋‚ด์šฉ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€๋ฆฌํ‚ฌ ๊ฒฝ์šฐ ํž™ ์˜์—ญ 100๋ฒˆ์ง€์— ๊ฐ€๋ฉด "์•ˆ๋…•"์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ ํ›„ str1์„ ๊ทธ๋Œ€๋กœ str2์— ์ €์žฅํ–ˆ์œผ๋‹ˆ str2๋„ ๋˜‘๊ฐ™์ด 100๋ฒˆ์ง€์— "์•ˆ๋…•"์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ str1์ด "์•ˆ๋…•ํ•˜์„ธ์š”"๋กœ ๋ฐ”๋€Œ๋ฉด str1์€ ๋‹ค๋ฅธ ๋ฒˆ์ง€์— "์•ˆ๋…•ํ•˜์„ธ์š”"๊ฐ€ ์žˆ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  str2๋Š” ์—ฌ์ „ํžˆ ๋˜‘๊ฐ™์ด 100๋ฒˆ์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

 

 

 

 

• ๋ฐฐ์—ด๊ณผ ์ฐจ์ด์ 

int[] array1 = new int[] {3, 4, 5};
int[] array2 = array1;
array1[0] = 6; array1[1] = 7; array[2] = 8;

System.out.println(Arrays.toString(array1));
System.out.println(Arrays.toString(array2));

 

๋ฐฐ์—ด์— 3๊ณผ 4, 5๋ฅผ array1์— ๋„ฃ์—ˆ๊ณ , array2๋Š” array1๊ณผ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด๋•Œ array1์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ 6๊ณผ 7, 8๋กœ ์ˆ˜์ •ํ•ด๋ณด๊ฒ ๋‹ค. ๋ถ„๋ช… ์œ„์—์„œ ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ–ˆ์„๋• ๋‘ ๊ฐ์ฒด์˜ ๊ฐ’์ด ๊ฐ™์ด ์ˆ˜์ •๋˜์ง€ ์•Š์•˜๋‹ค. ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์€ ๋‹ค๋ฅด๋‹ค. ๋ฐฐ์—ด์€ ๋ฒˆ์ง€์— ์ƒˆ๋กœ์šด ๊ฐ’์ด ์ž…๋ ฅ๋˜๋ฉด ๋‹ค๋ฅธ ๋ฒˆ์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋ณธ๋ž˜์˜ ์œ„์น˜์— ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๊ฐ’์„ ๋„ฃ๊ฒŒ๋œ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— ๊ฒฐ๊ณผ๋Š” array1๊ณผ array2 ๋ชจ๋‘ 6,7,8์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

 

 

 

• ๋ฆฌํ„ฐ๋Ÿด๋กœ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์ด

String str1 = new String("์•ˆ๋…•");
String str2 = "์•ˆ๋…•";
String str3 = "์•ˆ๋…•";
String str4 = new String("์•ˆ๋…•");

System.out.println(str1 == str4);
System.out.println(str2 == str3);
str2์™€ str3์€ ๋ฆฌํ„ฐ๋Ÿด์„ ๋ฐ”๋กœ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๋ฉฐ, ๊ทธ ๋ฐ์ดํ„ฐ๋Š” ์„œ๋กœ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๋งŒ์•ฝ ์ด๋ ‡๊ฒŒ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹์œผ๋กœ String ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ, JVM์€ ๋จผ์ € String Pool์—์„œ ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํ™•์ธ๋˜๋ฉด ๊ธฐ์กด ๋ฌธ์ž์—ด ๊ฐ์ฒด์˜ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๊ณ  ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋œ๋‹ค.

new ์—ฐ์‚ฐ์ž๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ String Pool์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค. new๋Š” ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋™์ผํ•œ ๊ฐ’์ด๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ str1๊ณผ str4๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  str2์™€ str3์€ ์„œ๋กœ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. 

 

 

Q. new๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ๊ฐ€?

A. new ์—ฐ์‚ฐ์ž๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘, ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์™ธ๋ถ€์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ๋ถ„๋ฆฌ๋˜์–ด ๊ฐ’์ด ๋ณ€๊ฒฝํ•˜๊ธธ ์›ํ•  ๊ฒฝ์šฐ new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 


 

 

 

 

โœ”๏ธ  + ์—ฐ์‚ฐ_ 195p

 

• ๋ฌธ์ž์—ด + ๋ฌธ์ž์—ด ์—ฐ์‚ฐ

String str1 = "์•ˆ๋…•" + "ํ•˜์„ธ์š”" + "!";
System.out.println(str1);
๊ฐ์ฒด๋Š” ๋ช‡ ๊ฐœ ๋งŒ๋“ค์–ด์งˆ๊นŒ? ์ฒ˜์Œ์— "์•ˆ๋…•"๊ณผ "ํ•˜์„ธ์š”" ๊ทธ๋ฆฌ๊ณ  "!"๊นŒ์ง€ 3๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ ํ›„ + ์—ฐ์‚ฐ์ž๋กœ ์—ฐ๊ฒฐ์ด ๋  ๊ฒƒ์ด๋‹ค. "์•ˆ๋…•" + "ํ•˜์„ธ์š”"๋กœ "์•ˆ๋…•ํ•˜์„ธ์š”"๊ฐ€ ๋งŒ๋“ค์–ด์ ธ ์ด 4๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ๋˜๊ณ  "!"๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉฐ "์•ˆ๋…•ํ•˜์„ธ์š”!"๊ฐ€ ์™„์„ฑ๋˜์–ด ์ด 5๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๊ฒƒ์ด๋‹ค.

 

 

 

• ์ž๋ฃŒํ˜•์— ๋”ฐ๋ฅธ + ์—ฐ์‚ฐ

System.out.println(1 + 2 + "์•ˆ๋…•");
System.out.println("์•ˆ๋…•" + 1 + 2);
์ฒซ๋ฒˆ์งธ ์ฝ”๋“œ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๋ฉด ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ค๋Š” 1๊ณผ 2๋กœ ์ž๋ฃŒํ˜•์ด ์ˆซ์ž ์ž๋ฃŒํ˜•์œผ๋กœ ๋™์ผํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ๋™์ผํ•œ ์ž๋ฃŒํ˜•์ด ์—ฐ๋‹ฌ์•„ ๋‚˜์˜ฌ ๊ฒฝ์šฐ ๋”ํ•˜๊ธฐ ์—ฐ์‚ฐ์œผ๋กœ ์ž‘์šฉํ•˜์—ฌ 3 + "์•ˆ๋…•" ํ˜•ํƒœ๋กœ ์ด๋ค„์ง€๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋‘๋ฒˆ์งธ ์ฝ”๋“œ์ฒ˜๋Ÿผ "์•ˆ๋…•"๊ณผ 1์ด +์—ฐ์‚ฐ์ž๋กœ ์—ฐ๊ฒฐ๋  ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์œผ๋กœ ์•ˆ๋…•1์ด ๋˜๊ณ  ๊ทธ ํ›„์— ๋‚˜์˜ค๋Š” 2 ๋˜ํ•œ ์•ˆ๋…•1๋กœ 1์ด ์žˆ์–ด๋„ ์ˆซ์ž ์ž๋ฃŒํ˜•์œผ๋กœ ์ธ์‹ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ๋…•12๊ฐ€ ์ตœ์ข…์ ์ธ ๊ฐ’์ด ๋  ๊ฒƒ์ด๋‹ค.

+ Recent posts