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

๐Ÿ’Ž/Java14

[Java] Primitive type vs Reference type ๊ธฐ๋ณธํ˜•(Primitive type) ์ด 8๊ฐ€์ง€์˜ ๊ธฐ๋ณธํ˜• ํƒ€์ž…(Primitive type)์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•˜์—ฌ ์ œ๊ณตํ•œ๋‹ค. ๋น„๊ฐ์ฒด, Null์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ ์‹ค์ œ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ ๋ฌธ๋ฒ•์ƒ ์—๋Ÿฌ → ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ ํƒ€์ž… ํ• ๋‹น๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ๊ธฐ๋ณธ๊ฐ’ ๋ฐ์ดํ„ฐ์˜ ํ‘œํ˜„ ๋ฒ”์œ„ ๋…ผ๋ฆฌํ˜• boolean 1 byte false true, false ์ •์ˆ˜ํ˜• byte 1 byte 0 -128 ~ 127 short 2 byte 0 -32,768 ~ 32,767 int(๊ธฐ๋ณธ) 4 byte 0 -2,147,483,648 ~ 2,147,483,647 long 8 byte 0L -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 ์‹ค์ˆ˜ํ˜• float 4 byte 0.0F .. 2021. 4. 18.
[Java] HashMap, LinkedHashMap, TreeMap, Hashtable ์ฐจ์ด '์ฝ”๋”ฉ์ธํ„ฐ๋ทฐ'์™€ '์œ ํŠœ๋ธŒ'๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. HashMap, LinkedHashMap, TreeMap, Hashtable ๋„ค ๊ฐ€์ง€ ๋ชจ๋‘ ํ‚ค(key)์—์„œ ๊ฐ’(value)์œผ๋กœ์˜ ๋Œ€์‘ ๊ด€๊ณ„๊ฐ€ ์žˆ๊ณ  ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํด๋ž˜์Šค๋“ค์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ํ‚ค๊ฐ€ ๋†“์ด๋Š” ์ˆœ์„œ์— ์žˆ๋‹ค. HashMap ๊ฒ€์ƒ‰๊ณผ ์‚ฝ์ž…์— O(1) ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค. ํ‚ค์˜ ์ˆœ์„œ๋Š” ๋ฌด์ž‘์œ„๋กœ ์„ž์—ฌ ์žˆ๋‹ค. ๊ตฌํ˜„์€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด๋กœ ๋˜์–ด ์žˆ๋‹ค. null key์™€ null value๋ฅผ ๋ชจ๋‘ ํ—ˆ์šฉ LinkedHashMap ๊ฒ€์ƒ‰๊ณผ ์‚ฝ์ž…์— O(1) ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค. ํ‚ค์˜ ์ˆœ์„œ๋Š” ์‚ฝ์ž…ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค. ๊ตฌํ˜„์€ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋ฒ„ํ‚ท(double-linked bucket)์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. TreeMap ๊ฒ€์ƒ‰๊ณผ ์‚ฝ.. 2021. 4. 3.
[Java] ==, equals, instanceof == vs equals ๊ธฐ๋ณธํ˜• ๋น„๊ต : == ๊ฐ์ฒด ๋น„๊ต : equals ์ž์‹ (this)์™€ ์ฃผ์–ด์ง„ ๊ฐ์ฒด(obj)๋ฅผ ๋น„๊ตํ•œ๋‹ค. ๊ฐ™์œผ๋ฉด true, ๋‹ค๋ฅด๋ฉด false ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ•˜๋ฏ€๋กœ ๊ฐ’์„ ๋น„๊ตํ•˜๋„๋ก ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ•ด์•ผํ•œ๋‹ค. obj์˜ ํ˜•๋ณ€ํ™˜ ํ›„ ๊ฐ’ ๋น„๊ต ๊ธฐ๋ณธํ˜•๊ณผ ๊ฐ์ฒด(์ฐธ์กฐํ˜•)์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๐Ÿ‘‰์—ฌ๊ธฐ ์ฐธ๊ณ ! instanceof ์—ฐ์‚ฐ์ž ์ฐธ์กฐ๋ณ€์ˆ˜ ํ˜•๋ณ€ํ™˜ ๊ฐ€๋Šฅ์—ฌ๋ถ€ ํ™•์ธ์— ์‚ฌ์šฉ. ํ˜•๋ณ€ํ™˜์€ ์กฐ์ƒ๊ณผ ์ž์†๊ฐ„์˜ ๋ณ€ํ™˜์—์„œ๋งŒ ๊ฐ€๋Šฅ. ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ๋ฉค๋ฒ„๋ณ€์ˆ˜์˜ ๊ฐฏ์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ˜•๋ณ€ํ™˜์„ ํ•œ๋‹ค. (์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ์ธ์Šคํ„ด์Šค์˜ ์›๋ž˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ˜•๋ณ€ํ™˜์„ ํ•œ๋‹ค.) ์˜ˆ) Car์—์„œ๋Š” ์ž์†ํƒ€์ž…์˜ ๋ฉ”์†Œ๋“œ๋„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ FireEngine์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•˜๊ณ  FireEngine์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.. 2020. 9. 9.
[Java] int ์™€ Integer ์ฐจ์ด์  ๊ธฐ๋ณธํ˜• vs ์ฐธ์กฐํ˜• ๊ธฐ๋ณธํ˜• : ์˜ค์ง 8๊ฐœ(boolean, char, byte, short, int, long, float, double) ์‹ค์ œ ๊ฐ’์„ ์ €์žฅ ๊ธฐ๋ณธํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ - ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ์กฐํ˜• : ๊ธฐ๋ณธํ˜•์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€(String, System ๋“ฑ) ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅ ์ฐธ์กฐํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ - ์ฝ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. (์ฃผ์†Œ๋ฅผ ์ „๋‹ฌ ๋ฐ›์œผ๋‹ˆ๊นŒ) ๋ž˜ํผ(wrapper) ํด๋ž˜์Šค ๊ธฐ๋ณธํ˜•๊ฐ’์„ ๊ฐ์‹ธ๋Š” ํด๋ž˜์Šค. 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ค„์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค. ๐Ÿ‘‰ Boolean, Character, Byte, Short, Integer, Long, Float, Double Java๋Š” 90% ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ ๋ชจ๋“ ๊ฒƒ์— ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์„ฑ๋Šฅ๋•Œ๋ฌธ์— ๊ธฐ๋ณธํ˜•์ด ํ•„์š”ํ–ˆ๋‹ค. ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ๊ธฐ๋ณธํ˜•์ด๋ฉด ์ฃผ.. 2020. 9. 8.
[Java] finalize ๋ฉ”์†Œ๋“œ ๋ฐœ๋‹จ c++์„ ์ฃผ๋กœ ์ผ๋‹ค๋ณด๋‹ˆ ์ƒ์„ฑ์ž, ์†Œ๋ฉธ์ž์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ํ•™๊ต ๊ณผ์ œ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด์„œ Swing ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๋‹ค๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊บผ์งˆ ๋•Œ ๋‹ค๋ฅธ ๊ฐ์ฒด๋„ ์ข…๋ฃŒํ•˜๊ณ  ์‹ถ์–ด์„œ Java ์†Œ๋ฉธ์ž๋ฅผ ์•Œ์•„๋ณด์•˜๋‹ค. Java์—๋Š” ์†Œ๋ฉธ์ž ๋ฉ”์†Œ๋“œ๋Š” ๋”ฐ๋กœ ์—†๊ณ , ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” finalize๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์ž๋ฐ”๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ(GC)๊ฐ€ ํž™ ์˜์—ญ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— finalize ๋ฉ”์†Œ๋“œ๋ฅผ ์“ฐ๋”๋ผ๋„ ์–ธ์ œ ๋™์ž‘ํ• ์ง€ ๋ชจ๋ฅด๊ณ (์‹คํ–‰์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ) ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋„ ์œ„ํ—˜ํ•˜๋‹ค๋Š” ์˜๊ฒฌ์ด ์žˆ์—ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค๋„ Java9๋ถ€ํ„ฐ๋Š” Object.finalize๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค๋Š” ๊ธ€์„ ๋ณด๊ณ  ๋‚˜์„œ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ์ฐพ์•„๋ดค๋˜ ์งˆ๋ฌธ์˜ ๋‹ต๋ณ€๋„ ๋Œ€๋ถ€๋ถ„ finalize()๋ฅผ ํ†ตํ•œ ๋ฐฉ๋ฒ•์ด.. 2020. 9. 8.