๐Ÿ“’ Language/๐Ÿ“ Java

320x100
๐Ÿ“’ Language/๐Ÿ“ Java

[Java] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ (Garbage Collection) / Minor GC, Major GC

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ (Garbage Collection) java์˜ Garbage Collection(GC) ์ด๋ž€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ํ•ด์ œ๋ฅผ ๋‹ค๋ฃจ์ง€ ์•Š๊ณ ๋„ ํšจ์œจ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก JVM์˜ GC๊ฐ€ ๋™์ž‘ํ•œ๋‹ค. C์™€ C++์—์„  free()๋‚˜ delete()์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ช…์‹œ์ ์œผ๋กœ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•ด์ฃผ์–ด์•ผ ํ•˜์ง€๋งŒ, ์ž๋ฐ”์—์„  GC๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ๋Œ€์‹  ์ˆ˜ํ–‰ํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด ์ค€๋‹ค. โ—ฝํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์คŒ โ—ฝ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ๊ฐœ๋ฐœ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Œ โ—พ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ์‹œ์ ์„ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†์Œ โ—พGC๊ฐ€ ๋™์ž‘ํ•˜๋Š”..

๐Ÿ“’ Language/๐Ÿ“ Java

[Java] ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OOP is A PIE)

๊ฐ์ฒด๋ž€? ๊ฐ์ฒด ์ง€ํ–ฅ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์— "๊ฐ์ฒด"์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๊ฐ์ฒด(ๅฎข้ซ”)๋ผ๋Š” ๋‹จ์–ด๋ฅผ ํ•œ์ž๋กœ ํ’€์–ด๋ณด๋ฉด ์† ๊ฐ(ๅฎข) ์ž๋ฅผ ์“ฐ๋ฉฐ '์†๋‹˜'์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ฐ˜๋Œ€๋ง์€ ์ฃผ์ธ ์ฃผ(ไธป) ํ•œ์ž๋ฅผ ์“ฐ๋Š” "์ฃผ์ฒด"๋ผ๋Š” ๋‹จ์–ด์ธ๋ฐ, ๊ฐ์ฒด๋Š” ์ฃผ์ฒด๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ ์ฃผ์ฒด๊ฐ€ ํ™œ์šฉํ•˜๋Š” ๋Œ€์ƒ์ด๋ผ๋Š” ์˜๋ฏธ๋‹ค. ์‹ค์ œ ์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋ฌผ์ด ๊ฐ์ฒด๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ณ  ์ด ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋Œ€์ƒ์ด ๋œ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Object-Oriented Programming, OOP) ๊ฐ์ฒด ์ง€ํ–ฅ ์ด๋ก ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์€ "์‹ค์ œ ์„ธ๊ณ„๋Š” ์‚ฌ๋ฌผ(๊ฐ์ฒด)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๊ฑด๋“ค์€ ์‚ฌ๋ฌผ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด๋‹ค."๋ผ๊ณ  ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ด๋Ÿฐ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์„ธ๊ณ„๋ฅผ ์ปดํ“จํ„ฐ ์†์— ์˜ฎ๊ฒจ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„..

๐Ÿ“’ Language/๐Ÿ“ Java

[Java] Scanner ํด๋ž˜์Šค / nextInt(), next(), nextLine()

Scanner ํด๋ž˜์Šค java.util.Scanner java.util ํŒจํ‚ค์ง€์˜ Scanner ํด๋ž˜์Šค๋Š” ํŒŒ์ผ, ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ๋“ฑ์—์„œ ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž์—ด ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ๊ตฌ๋ถ„์ž๋กœ ํ† ํฐํ™”ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํƒ€์ž…์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ํด๋ž˜์Šค์ด๋‹ค. ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํ˜•๋ณ€ํ™˜ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํŽธ๋ฆฌํ•˜๋‹ค. Java๋กœ ์ž…๋ ฅ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ์ž์ฃผ ์ ‘ํ–ˆ๋˜ ๋ฌธ์ œ ์ค‘ '๋‚˜๋Š” ์ž…๋ ฅ์„ ์•„์ง ํ•˜์ง€์•Š์•˜๋Š”๋ฐ, ์ด๋ฏธ ์ž…๋ ฅ ๋ฐ›์•„ ๋„˜์–ด๊ฐ„ ๊ฒฝ์šฐ'๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ๋งˆ๋‹ค ๋ฒ„ํผ์— ๊ฐœํ–‰๋ฌธ์ž๊ฐ€ ๋‚จ์•„์žˆ๋‚˜๋ณด๋‹ค.. ๋ผ๋Š” ์‹์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ  ๋ผ์›Œ๋งž์ถ”๊ธฐ ์‹ ์ฝ”๋“œ๋กœ ๋„˜์–ด๊ฐ”์—ˆ๋Š”๋ฐ, ์˜ค๋Š˜ ์ œ๋Œ€๋กœ ์ •๋ฆฌํ•ด๋ณด๋Š” ํฌ์ŠคํŒ…! ์šฐ์„ , Scanner๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ •ํ™•ํžˆ ๋งํ•˜๋ฉด 1KB ํฌ๊ธฐ์˜ ๋ฒ„ํผ๋ฅผ ๊ฐ–๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์ž…๋ ฅ์ด ๋“ค์–ด์™”์„ ๋•Œ ๋ฐ์ดํ„ฐ..

๐Ÿ“’ Language/๐Ÿ“ Java

[Java] Arrays ๊ด€๋ จ

Arraysํด๋ž˜์Šค ๋ฐฐ์—ด์„ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด ๊ด€๋ จ ๋ฉ”์„œ๋“œ๋“ค ์ •์˜๋˜์–ด์žˆ์Œ ๋ฐฐ์—ด ๋ณต์‚ฌ copyOf( ) copyOfRange( ) copyOf( ) : ๋ฐฐ์—ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์„ ํƒ(์ง€์ • ๊ฐ€๋Šฅ)๊นŒ์ง€ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ // Arrays.copyOf(๋ฐฐ์—ด, ๋์ธ๋ฑ์Šค(-1)) int[] arr = {0,1,2,3,4}; int[] result1 = Arrays.copyOf(arr, 2) // result1 = {0, 1}; int[] result2 = Arrays.copyOf(arr, 6) // result2 = {0, 1, 2, 3, 4, 0}; copyOfRange( ) : ๋ฐฐ์—ด ์„ ํƒ(์ง€์ • ๊ฐ€๋Šฅ)๋ถ€ํ„ฐ ์„ ํƒ(์ง€์ • ๊ฐ€๋Šฅ)๊นŒ์ง€ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ // Arrays.copyOfRange(๋ฐฐ์—ด, ์‹œ์ž‘์ธ๋ฑ..

๐Ÿ“’ Language/๐Ÿ“ Java

[Java] length, length(), size()

๋งค๋ฒˆ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฑฐ ์ •๋ฆฌ length ๋ฐฐ์—ด์˜ ๊ธธ์ด ๋ฐ˜ํ™˜ arr.length length() ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๋ฐ˜ํ™˜ str.length() size() ์ปฌ๋ ‰์…˜ํ”„๋ ˆ์ž„์›Œํฌ ํƒ€์ž… ๊ธธ์ด ๋ฐ˜ํ™˜ arrList.size()

๐Ÿ“’ Language/๐Ÿ“ Java

[Java] ๋‚ด๊ฐ€ ๋ณด๋Š” ์ž๋ฐ” ๋„์ ๋„์ ..

์•„๋ฌด๋„ ๋ณด์ง€๋งˆ์„ธ์—ฌ ์™œ๋ƒํ•˜๋ฉด ์ˆœ์„œ๋„ ๋’ค์ฃฝ๋ฐ•์ฃฝ ๋‚œ๋ฆฌ๋‚œ๋ฆฌ ๋‚œ์žฅํŒ ์˜์‹์˜ ํ๋ฆ„๋Œ€๋กœ ์ ์€๊ฑฐ๋‹ˆ๊นŒ์š”... ํ•˜์ง€๋งŒ ๋น„๊ณต๊ฐœ๋Š” ์•ˆํ• ๋ž˜์š” ๊ทธ๊ฑด ์ œ ๋ง˜์ž…๋‹ˆ๋‹ค :-> ์ธ๋ฑ์Šค ํ˜•๋ณ€ํ™˜ ๋ฐฐ์—ด์—์„œ ํŠน์ • ์š”์†Œ ์‚ญ์ œ string๋ผ๋ฆฌ ๋น„๊ต ์ œ๊ณฑ, ์ œ๊ณฑ๊ทผ string ๋Œ€์†Œ๋ฌธ์ž ๋ณ€๊ฒฝ ๋ฐฐ์—ด ๊นŠ์€ ๋ณต์‚ฌ string ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ ๋ฌธ์ž์—ด ์น˜ํ™˜ํ•˜๊ธฐ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ๋ฐฐ์—ด ์•ˆ์— ํŠน์ • ์š”์†Œ ์žˆ๋‚˜? ํ˜•๋ณ€ํ™˜ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํƒ€์ž…์€ ๊ทธ๋ƒฅ (type)์•ž์— ๋ถ™์—ฌ์ฃผ๊ธฐ // ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํƒ€์ž… int a = (int)3.141592; //์†Œ์ˆ˜์  ์•„๋ž˜์ž๋ฆฌ ๋ฒ„๋ฆผ // โญString intโญ int i = Integer.parseInt(s); String s = Integer.toString(i); String๋ผ๋ฆฌ ๋น„๊ต str1.equals(str2) String ๋Œ€์†Œ๋ฌธ์ž ๋ณ€๊ฒฝ ๋Œ€์†Œ..

๐Ÿ“’ Language/๐Ÿ“ Java

[Java] ์ œ์–ด์ž(modifier)-์ ‘๊ทผ ์ œ์–ด์ž/๊ทธ ์™ธ ์ œ์–ด์ž

์ œ์–ด์ž ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ, ํด๋ž˜์Šค ์„ ์–ธ๋ถ€์— ํ‘œ์‹œ๋˜์–ด ๋ถ€๊ฐ€์ ์ธ ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋งํ•œ๋‹ค. ์ œ์–ด์ž ์ข…๋ฅ˜ ์ œ์–ด์ž๋Š” ์ ‘๊ทผ ์ œ์–ด์ž์™€ ๊ทธ ์™ธ์˜ ์ œ์–ด์ž, ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ ์šฉ์ด ๋˜๋Š” ํ•˜๋‚˜์˜ ๋Œ€์ƒ์— ์—ฌ๋Ÿฌ ์ œ์–ด์ž๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ ‘๊ทผ ์ œ์–ด์ž๋Š” ํ•˜๋‚˜๋งŒ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ์ ‘๊ทผ ์ œ์–ด์ž(access modifier) ํด๋ž˜์Šค, ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ, ์ƒ์„ฑ์ž์— ์‚ฌ์šฉ๋˜๋ฉฐ ํ•ด๋‹น ๋ฉค๋ฒ„๋‚˜ ํด๋ž˜์Šค์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์™ธ๋ถ€ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. (์ฆ‰, ํ•ด๋‹น ๋ฉค๋ฒ„๋‚˜ ํด๋ž˜์Šค๋ฅผ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ œํ•œ) ๋ณดํ†ต ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ๋ฉค๋ฒ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. public protected default private ์ ‘๊ทผ ์ œ์–ด์ž ๋ฒ”์œ„(์ ‘๊ทผ ๋ฒ”์œ„ ๋„“์€ ์ˆœ) publ..

๋ฐ˜์‘ํ˜•
dana4056
'๐Ÿ“’ Language/๐Ÿ“ Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก