๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java32

[ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ Properties ํด๋ž˜์Šค HashTable์„ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•จ. (String, String)์˜ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ๋‹จ์ˆœํ™”ํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค. ์ฃผ๋กœ Appํ™˜๊ฒฝ์„ค์ •๊ณผ ๊ด€๋ จ๋œ ์†์„ฑ์ €์žฅ์— ์‚ฌ์šฉํ•จ. Collections ํด๋ž˜์Šค ์ปฌ๋ ‰์…˜์˜ ๋™๊ธฐํ™”: ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋™๊ธฐํ™” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋จ: synchronized ์–ด์ฉŒ๊ตฌ ( ) ์ฝ๊ธฐ ์ „์šฉ ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค๋•Œ๋Š”: unmodifiable~ ๋‹จ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋งŒ ์ €์žฅํ•˜๋Š” ์‹ฑ๊ธ€ํ†ค ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค๋•Œ๋Š”: singleton ์–ด์ฉŒ๊ตฌ( ) ํ•œ ์ข…๋ฅ˜(ํƒ€์ž…) ๊ฐ์ฒด๋งŒ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜ ๋งŒ๋“ค ๋•Œ: checked ์–ด์ฉŒ๊ตฌ( )→์ง€๋„ค๋ฆญ์Šค๊ฐ€ ๋” ๊ฐ„๋‹จํ•˜์ง€๋งŒ ํ˜ธํ™˜์„ฑ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•จ 2023.12.14 - [๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ž๋ฃŒ๊ตฌ์กฐ] - [๋ฉ”์„œ๋“œ] Collections ํด๋ž˜์Šค ์ฃผ์š” ๋ฉ”์„œ๋“œ Arrays ํด๋ž˜.. 2023. 11. 14.
[ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ Map MapEntry ์ธํ„ฐํŽ˜์ด์Šค Map์ธํ„ฐํŽ˜์ด์Šค์˜ ๋‚ด๋ถ€ ์ธํ„ฐํŽ˜์ด์Šค. Map์— ์ €์žฅ๋˜๋Š” Key-Value๋ฅผ ์Œ์œผ๋กœ ๋‹ค๋ฃจ๋ ค๊ณ  Entry๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ์ •์˜ํ•ด๋†“์Œ. HashMap ํด๋ž˜์Šค๋‚ด๋ถ€์— Entry[ ] ํƒ€์ž…์˜ ํ…Œ์ด๋ธ” ํ•„๋“œ๊ฐ€ ์žˆ์Œ. HashMap๊ณผ HashTable ํ‚ค&๊ฐ’์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅํ•จ. ‘ํ•ด์‹ฑ’์„ ์‚ฌ์šฉํ•ด์„œ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์คŒ HashMap์€ Entry๋ผ๋Š” ๋‚ด๋ถ€์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•จ. Entryํƒ€์ž…์˜ ๋ฐฐ์—ด ์„ ์–ธ ํ›„ ํ‚ค์™€ ๊ฐ’์€ Objectํƒ€์ž… ์œผ๋กœ ์ €์žฅ๋จ. ํ‚ค๋Š” ์ €์žฅ๋œ ๊ฐ’์„ ์ฐพ๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์œ ์ผํ•ด์•ผํ•จ. HashMap์˜ ๊ฐ’์œผ๋กœ ๋‹ค์‹œ HashMap์ €์žฅ ๊ฐ€๋Šฅ. ‘ํ•ด์‹ฑ’: ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋ฒ• ํ•ด์‹ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ: ๋ฐฐ์—ด+๋งํฌ.. 2023. 11. 14.
[ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ Set HashSet Set์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค. ์ค‘๋ณต์š”์†Œ ์ €์žฅX, ์ค‘๋ณต์š”์†Œ ์ €์žฅ ์‹œ false๋ฐ˜ํ™˜ ์ €์žฅ์ˆœ์„œ ์œ ์ง€X(ํ•„์š”์‹œ LinkedHashSet์‚ฌ์šฉ) ์ค‘์š” ๋ฉ”์„œ๋“œ: add, addAll, clear, clone, contain,isEmpty, iterator, remove, retainAll, size, toArray equals( )์™€ hashCode( )๋ฅผ ๋ชฉ์ ์— ๋งž๊ฒŒ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์•ผํ•จ. TreeSet ‘์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ’ ์ž๋ฃŒ๊ตฌ์กฐ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ํ•˜๋Š” ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค. ์ค‘๋ณต๋ฐ์ดํ„ฐ ์ €์žฅX, ์ €์žฅ์ˆœ์„œ ์œ ์ง€X ๋Œ€์‹  ์ €์žฅ ์‹œ ์ •๋ ฌ๋œ ์œ„์น˜์— ์ €์žฅํ•จ. ์ฒซ ๋ฒˆ์งธ ์ €์žฅ ๊ฐ’=‘๋ฃจํŠธ’ ๋ฃจํŠธ๋ผ๋Š” ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด์„œ ๊ณ„์† ํ™•์žฅํ•จ ๋…ธ๋“œ: ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ Objectํƒ€์ž…์˜ ์ฐธ์กฐ๋ณ€์ˆ˜1๊ฐœ + 2๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ .. 2023. 11. 14.
[ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ์š” ๋ฐ List ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ‘œ์ค€ํ™”๋œ ํ”„๋กœ๊ทธ๋žจ๋ฐฉ์‹ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ชจ๋“  ํด๋ž˜์Šค๋“ค์€ List, Set, Map์ค‘์— ํ•˜๋‚˜๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•จ. ํ•ต์‹ฌ ์ธํ„ฐํŽ˜์ด์Šค ์š”์•ฝ ArrayList ํด๋ž˜์Šค (๋ฐฐ์—ด๊ธฐ๋ฐ˜) List์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„, ๋ฐ์ดํ„ฐ ์ €์žฅ์ˆœ์„œ ์œ ์ง€O,์ค‘๋ณต ๋ฐ์ดํ„ฐ ํ—ˆ์šฉO. Object๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ. ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ. ๋” ์ด์ƒ ์ €์žฅ๊ณต๊ฐ„์ด ์—†์œผ๋ฉด ๋ณด๋‹ค ํฐ ๋ฐฐ์—ด์„ ์ƒ์„ฑ→๋ณต์‚ฌ→์ €์žฅ ์š”์†Œ ์‚ญ์ œ ์‹œ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ง€์šฐ๋ฉด ์ข‹์Œ trimToSize(): ๋นˆ๊ณต๊ฐ„์„ ์—†์• ์„œ size(๊ฐ์ฒด๊ฐœ์ˆ˜)์™€ capacity(์šฉ๋Ÿ‰)์„ ๊ฐ™๊ฒŒํ•จ. ์ˆœ์ฐจ์  ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‚ญ์ œ ๋น ๋ฆ„. ์ฝ๊ธฐ ๋น ๋ฆ„. ๋น„์ˆœ์ฐจ์  ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‚ญ์ œ ๋Š๋ฆผ. LinkedList ํด๋ž˜์Šค (์—ฐ๊ฒฐ๊ธฐ๋ฐ˜) ๋ฐฐ์—ด์˜ ๋‹จ์ (ํฌ๊ธฐ ๋ณ€๊ฒฝ ๋ฒˆ๊ฑฐ๋กœ์›€,.. 2023. 11. 14.
[ch.9] java.lang ํŒจํ‚ค์ง€์™€ ์œ ์šฉํ•œ ํด๋ž˜์Šค Wrapper ํด๋ž˜์Šค (java.lang ํŒจํ‚ค์ง€) ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ฒด๋กœ ๋‹ค๋ค„์•ผํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ. (๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ์ฒด๋ฅผ ์š”๊ตฌ, ๊ธฐ๋ณธํ˜• ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด๋กœ ์ €์žฅํ•ด์•ผ ํ•  ๋•Œ, ๊ฐ์ฒด ๊ฐ„์˜ ๋น„๊ต๊ฐ€ ํ•„์š”ํ•  ๋•Œ) 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•(์„ฑ๋Šฅ์ข‹์•„์„œ์”€) → 8๊ฐœ์˜ ๋ž˜ํผํด๋ž˜์Šค ๋ž˜ํผํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž( ๋งค๊ฐœ๋ณ€์ˆ˜ ) ๋งค๊ฐœ๋ณ€์ˆ˜=๋ฌธ์ž์—ด or ๊ฐ ์ž๋ฃŒํ˜•์˜ ๊ฐ’ ๊ธฐ๋ณธํ˜• & ๋ž˜ํผํด๋ž˜์Šค boolean, Boolean char, Character byte, Byte short, Short int, Integer long, Long float, Float double, Double ๋ž˜ํผํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ equals( )๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์–ด์„œ ์ฃผ์†Œ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฐ’์„ ๋น„๊ต. ๋ž˜ํผํด๋ž˜์Šค๋“ค์€ static์ƒ์ˆ˜๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ–๊ณ ์žˆ์Œ. (MAX_VALUE.. 2023. 11. 13.
[ch.9] String, StringBuffer, StringBuilder ํด๋ž˜์Šค String ํด๋ž˜์Šค (java.lang ํŒจํ‚ค์ง€) ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค. ๋ถˆ๋ณ€. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์ƒ์„ฑ์ž์˜ (๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฌธ์ž์—ด์„ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ๋ฌธ์ž ๋ฐฐ์—ด๋กœ ์ €์žฅํ•จchar[ ] ํ•œ ๋ฒˆ ์ƒ์„ฑ๋œ String์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐ–๊ณ ์žˆ๋Š” ๋ฌธ์ž์—ด์€ ์ฝ์–ด์˜ฌ ์ˆ˜๋งŒ ์žˆ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†์Œ. ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ์—๋Š” + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•จ. ๋ฌธ์ž์—ด์˜ ๋น„๊ต๋Š” ๋ฆฌํ„ฐ๋Ÿด ์ง€์ •ํ›„ ๋น„๊ตํ•จ. equals( )์‚ฌ์šฉ ์‹œ ๋‘ ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์„ ๋น„๊ตํ•จ. ๊ฐ™์€ ๋‚ด์šฉ์˜ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ํ•œ ๋ฒˆ๋งŒ ์ €์žฅ๋จ. ๋นˆ ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 0์ธ char[ ] new char[0] ok String s = “ ”; ok char c = ‘ ’; no! ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ๋ฌธ์ž ์ง€์ •ํ•˜๊ธฐ. join( ) ↔ split( ) ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด ์‚ฌ์ด์— ๊ตฌ๋ถ„์ž๋ฅผ ๋„ฃ์–ด์„œ ๊ฒฐํ•ฉํ•จ ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ .. 2023. 11. 13.
[ch.9] Object, Objects ํด๋ž˜์Šค Object ํด๋ž˜์Šค (java.lang ํŒจํ‚ค์ง€) ๋ฉค๋ฒ„๋ณ€์ˆ˜ ์—†์Œ. ์˜ค์ง ๋ฉ”์„œ๋“œ 11๊ฐœ equals( Object obj ) ๋‘ ๊ฐ์ฒด์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๊ฐ’(์ฃผ์†Œ๊ฐ’)์œผ๋กœ ํŒ๋‹จํ•จ. ๋ฉค๋ฒ„๋ณ€์ˆ˜ ๊ฐ’์œผ๋กœ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๊ธฐ. hashCode( ) ๊ฐ์ฒด์˜ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์คŒ(๊ณ ์œ ๊ฐ’). equals ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์‹œ ๊ฐ™์ด ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์ฃผ๊ธฐ. toString( ) ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ œ๊ณตํ•จ. ์›๋ž˜ ์ •์˜ ํด๋ž˜์Šค์ด๋ฆ„+@+ํ•ด์‰ฌ์ฝ”๋“œ16์ง„์ˆ˜ clone( ) ์ž์‹ ์„ ๋ณต์ œํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•จ. ์กฐ๊ฑด โ‘ ๋ณต์ œํ•  ํด๋ž˜์Šค๊ฐ€ Cloneable์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•˜๊ณ , clone( ) ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๋ฉด์„œ, ์ ‘๊ทผ์ œ์–ด์ž๋ฅผ protected์—์„œ public์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผํ•จ. โ‘ก์กฐ์ƒํด๋ž˜์Šค์˜ clone( )๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ try-.. 2023. 11. 13.