๋ชฉ๋ก์ „์ฒด ๊ธ€ (162)

EEALL@ONCE

โ˜• ์ž๋ฐ” ์ž๋ฃŒํ˜• - var ์—ฐ์‚ฐ์ž

Java 10๋ถ€ํ„ฐ ๋„์ž…๋œ var๋Š” Local-Variable Type Inference๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. var list = new ArrayList(); // ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ArrayList์ด๋ผ๋Š” ํƒ€์ž…์„ ์ถ”๋ก  var stream = list.stream(); // list์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด Stream ํƒ€์ž…์„ ์ถ”๋ก  ํ•˜์ง€๋งŒ var๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฃผ์˜์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค: var๋Š” ์˜ค์ง ๋ฉ”์„œ๋“œ์˜ ๋กœ์ปฌ ๋ณ€์ˆ˜์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜, ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. var๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ดˆ๊ธฐํ™” ๋  ๋•Œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž…์„ ์œ ์ถ”ํ• ..

โ˜• ์ž๋ฐ” ์ž๋ฃŒํ˜• - ์›์‹œ ์ž๋ฃŒํ˜• primitive type vs ์ฐธ์กฐ ์ž๋ฃŒํ˜• reference type

์›์‹œ ์ž๋ฃŒํ˜• primitive type vs ์ฐธ์กฐ ์ž๋ฃŒํ˜• reference type ๐Ÿญ: ์ด ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์€ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์›์‹œ ์ž๋ฃŒํ˜•: ๊ธฐ๋ณธ ์œ ํ˜•์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋‚ด์žฅ๋œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๊ฐ์ฒด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๊ณ  ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. Java์˜ ๊ธฐ๋ณธ ์œ ํ˜•์˜ ์˜ˆ๋Š” int, double, char, boolean ๋“ฑ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธํ˜•์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ๋ณ€์ˆ˜์— ์‹ค์ œ ๊ฐ’์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ์œ ํ˜•: ์ฐธ์กฐ ์œ ํ˜•์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ๊ฐœ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ(์ฐธ์กฐ)๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ์œ ํ˜•์—๋Š” ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋ฐฐ์—ด ๋ฐ ๊ธฐํƒ€ ์‚ฌ์šฉ์ž ์ •์˜ ์œ ํ˜•์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ..

โ˜• ์ž๋ฐ” ์ž๋ฃŒํ˜• - ๋ฐฐ์—ด์€ ๊ฐœ์ˆ˜์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ

๋ฐฐ์—ด์€ ๊ฐœ์ˆ˜์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์™œ๊ทธ๋Ÿด๊นŒ? ๐Ÿญ : ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น: ๋ฐฐ์—ด์€ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์š”์†Œ๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋กœ ์ธํ•ด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ƒˆ๋กœ์šด ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ์šด ๊ณต๊ฐ„์œผ๋กœ ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํฐ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋ฉฐ, ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ž์ฃผ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋กœ ์ธํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ฐ, ๊ทธ๋Ÿผ... arraylisst๋„ ๋˜‘๊ฐ™์ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€... ? ๐Ÿญ : ๋งž์Šต๋‹ˆ๋‹ค. ๋‘ ์ž๋ฃŒ๊ตฌ์กฐ ๋ชจ๋‘ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ƒˆ๋กœ์šด ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ ์—์„œ ํฌ๊ธฐ ๋ณ€๊ฒฝ์—๋Š” ๋น„์Šทํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋‘˜์„ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ์„ค๊ณ„ํ•˜๋Š” ..

โ˜• ์ž๋ฐ” ์ž๋ฃŒํ˜• - null์€ ์™œ ์›์‹œ ์ž๋ฃŒํ˜•์—” ์•ˆ๋“ค์–ด๊ฐ€์งˆ๊นŒ?

Reference Types(์ฐธ์กฐ ์ž๋ฃŒํ˜•) : Java์˜ ์ฐธ์กฐ ์œ ํ˜•์€ ํž™์˜ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ธฐ๋ณธ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์ฐธ์กฐ ์œ ํ˜•์˜ ์˜ˆ๋กœ๋Š” ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋ฐฐ์—ด ๋ฐ ๋ชจ๋“  ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ์ฒด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Primitive Types(์›์‹œ ์ž๋ฃŒํ˜•): Java์˜ ๊ธฐ๋ณธ ์œ ํ˜•์€ ๋‹จ์ˆœ ๊ฐ’์„ ๋ณด์œ ํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” int, double, boolean, char ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ฉฐ ํ•ด๋‹น ๊ฐ’๊ณผ ํ•จ๊ป˜ ์Šคํƒ์— ์ง์ ‘ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ์œ ํ˜•๊ณผ ๊ธฐ๋ณธ ์œ ํ˜•์˜ ์ฐจ์ด์ ์„ ๊ณ ๋ คํ•  ๋•Œ 'null'์€ ์ฐธ์กฐ ์œ ํ˜•์˜ ์ปจํ…์ŠคํŠธ์—์„œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์œ ํ˜• ๋ณ€์ˆ˜๋Š” ํ•ญ์ƒ ํ•ด๋‹น ์œ ํ˜•์˜ ๊ฐ’์„ ๋ณด์œ ํ•˜๋ฉฐ null๊ณผ ๊ฐ™์€ ๊ฐœ๋…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์œ ํ˜•์— ๋Œ€ํ•œ ๊ฐ’์ด ์—†์Œ์„ ๋‚˜ํƒ€๋‚ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Jav..

โ˜• ์ž๋ฐ” ์ž๋ฃŒํ˜• - null

null: Java์—์„œ null์€ ๊ฐ์ฒด ์ฐธ์กฐ๊ฐ€ ์—†์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํŠน์ˆ˜ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์— 'null' ๊ฐ’์ด ํ• ๋‹น๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐœ์ฒด๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. null์€ ๋ฌธ์ž์—ด ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•˜๋‹ค. ์™œ ์ผ๊นŒ? ๋ฌธ์ž์—ด ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ž€? .length(), .equals(), .concat() ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ๐Ÿญ : null์€ ์ฐธ์กฐํ•˜๋Š” ๊ฐ’์ด ์—†์Œ์œผ๋กœ, ๊ธธ์ด๋ฅผ ์…€ ์ˆ˜๋„, ๋น„๊ต ํ•  ์ˆ˜๋„, ์—ฐ๊ฒฐํ•  ์ˆ˜๋„ ์—†๋Š” ๊ฒƒ์ด๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ๋˜ ์ƒ๊ฐํ•ด๋ด์•ผํ•  ๋ถ€๋ถ„์€ null์˜ ํ• ๋‹น์€ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๋ฅผ ๋‚ด๋Š”๊ฐ€ ์ด๋‹ค! String notInitStr; String nullStr2 = null; System.out.println(notInitStr); // (1) Syste..

โ˜• ์ž๋ฐ” ์ž๋ฃŒํ˜• - ํŠธ๋ฆฌ๋ฐ / trim()

ํŠธ๋ฆฌ๋ฐ(Trimming)์€ ๋ฌธ์ž์—ด์—์„œ ์–‘์ชฝ ๋์— ์œ„์น˜ํ•œ ๊ณต๋ฐฑ(whitespace)์„ ์ œ๊ฑฐํ•˜๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์˜ ์–‘์ชฝ ๋์—๋Š” ๊ณต๋ฐฑ ๋ฌธ์ž(์˜ˆ: ๊ณต๋ฐฑ, ํƒญ, ์ค„๋ฐ”๊ฟˆ ๋“ฑ)์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณต๋ฐฑ ๋ฌธ์ž๋“ค์€ ์ข…์ข… ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ฑฐ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” `trim()` ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ํŠธ๋ฆฌ๋ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `trim()` ๋ฉ”์„œ๋“œ๋Š” ํŠธ๋ฆฌ๋ฐ๋œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ๋ฌธ์ž์—ด์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ , ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ์€ `trim()` ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์—์„œ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค: public class Main { public static void main(String[] args) ..