๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
FOR SW ENGINEER๐Ÿ‘ฉ‍๐Ÿ’ป/JAVA

๊ตญ๋น„JAVA์ˆ˜์—… DAY-11

by ์”จ๋‹ˆ 2021. 8. 28.
728x90

์˜ค๋Š˜์€ ๊ตญ๋น„์ˆ˜์—… 11์ผ์ฐจ!!

์˜ค๋Š˜ ์ˆ˜์—…์‹œ๊ฐ„์—๋Š” Garbage Collecting, ํŒจํ‚ค์ง€(Package), ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ฐธ์กฐํƒ€์ž…, ๊ธฐ๋ณธํƒ€์ž…), ์Šคํƒ๊ณผ ํž™, string์˜ ๋น„๊ต๋ฉ”์„œ๋“œ, ์ƒ์†(Inheritance), ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding), ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค.

์ผ๋‹จ ์ด๋ฒˆ ๋กœ๊ทธ์—์„œ๋Š” ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํŒ…, ํŒจํ‚ค์ง€, ๋ฐ์ดํ„ฐํƒ€์ž…, ์Šคํƒ๊ณผ ํž™, string์˜ ๋น„๊ต๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค!

๊ทธ๋Ÿผ ์š”์  ์‹œ์ž‘~~!!๐Ÿ™Œ

 

1. ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํŒ…(Garbage Collecting)

- ๊ฐ์ฒด ์ƒ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค์›Œ๋“œ๋Š” new์ด์ง€๋งŒ, ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ์‹œํ‚ค๋Š” ํ‚ค์›Œ๋“œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Œ.

- ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ด์œ  : ์ž๋ฐ”๊ฐ€์ƒ๋จธ์‹ (JVM)์ด ์•Œ์•„์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์คŒ --> ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํŒ…(Garbage Collecting)

- JVM์€ ๊ฐ์ฒด๊ฐ€ ๋” ์ด์ƒ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์Šค์Šค๋กœ ํŒ๋‹จํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œํ•˜๊ณ  ์ˆ˜๊ฑฐํ•จ.

 

 

2. ํŒจํ‚ค์ง€(Package)

- ํด๋ž˜์Šค 2๊ฐœ์ข…๋ฅ˜ : ์‚ฌ์šฉ์ž ์ •์˜ ํด๋ž˜์Šค, ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ํด๋ž˜์Šค

- ์‚ฌ์šฉ์ž ์ •์˜ ํด๋ž˜์Šค : ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ ์ง์ ‘ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค

- ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ํด๋ž˜์Šค : JDK(JAVA Development Kit)์•ˆ์— ์ด๋ฏธ ์žˆ๊ฑฐ๋‚˜, ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋†“์€ ํด๋ž˜์Šค

- ํด๋ž˜์Šค๋“ค์€ ๋งค์šฐ ์ข…๋ฅ˜๊ฐ€ ๋งŽ๊ณ  ๋น„์Šทํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๋ถ„๋ฆฌ์‹œ์ผœ์•ผํ•ด ๊ด€๊ณ„์žˆ๋Š” ํด๋ž˜์Šค๋“ค์„ ํŒจํ‚ค์ง€๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌ.

- ํ˜„์žฌ ํด๋ž˜์Šค์—์„œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ์™ธ๋ถ€ ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ importํ‚ค์›Œ๋“œ๋กœ ํ•ด๋‹น ํด๋ž˜์Šค์˜ ์ „์ฒด๊ฒฝ๋กœ(ํŒจํ‚ค์ง€ ๋ช…๊นŒ์ง€ ํฌํ•จ)๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผ ํ•จ.

- ํ•ด๋‹น ํŒจํ‚ค์ง€ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด '*' ๊ธฐํ˜ธ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋จ.

 

โ–ถ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

- ์‚ฌ์šฉ์ž๊ฐ€ ์ž„์˜๋กœ ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด ํด๋ž˜์Šค ๊ฐ€์žฅ ์œ—๋ถ€๋ถ„์— ํŒจํ‚ค์ง€ ๊ตฌ๋ฌธ ํฌํ•จ.

- ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ ์˜๋ฌธ ์†Œ๋ฌธ์ž๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ ๊ถŒ์žฅ.

- ๋Œ€๋ถ„๋ฅ˜์™€ ์†Œ๋ถ„๋ฅ˜ ํŒจํ‚ค์ง€ ๊ตฌ๋ถ„ํ•  ๋•Œ ' . '์„ ์‚ฌ์šฉ.

- ์ตœ์ƒ์œ„ ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ java๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Œ. javaํŒจํ‚ค์ง€๋Š” ํ‘œ์ค€ API๋“ค์˜ ๋ชจ์Œ์„ ๊ตฌ์„ฑํ•ด ๋†“์€ ํŒจํ‚ค์ง€์ž„.

- ์ž๋ฐ”์˜ ํ‚ค์›Œ๋“œ๋“ค๋„ ํŒจํ‚ค์ง€์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ๋ถˆ๊ฐ€.

 

โ–ถํŒจํ‚ค์ง€ ์‚ฌ์šฉ์˜ˆ์ œ

-์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€

com.abcํŒจํ‚ค์ง€์™€ com.defํŒจํ‚ค์ง€

-ํ•˜๋‚˜์˜ ํŒจํ‚ค์ง€ ์•ˆ์— 2๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค

fruitํด๋ž˜์Šค ์•ˆ์— Apple๊ณผ Melonํด๋ž˜์Šค

-์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๋Š” MAIN๋ฌธ

โ—‹ java.util.Scanner๋Š” Scanner๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฐ” ๊ธฐ๋ณธ ํŒจํ‚ค์ง€

โ—‹ import fruit.* --> fruitํŒจํ‚ค์ง€ ๋‚ด ๋ชจ๋“  ํด๋ž˜์Šค ์‚ฌ์šฉ

โ—‹ import com.abc.ABC / import com.def.DEF --> ๊ธฐ๋ณธ์ ์ธ ํŒจํ‚ค์ง€ ํ˜ธ์ถœ๋ฐฉ์‹

 

 

 

3. ๋ฐ์ดํ„ฐ ํƒ€์ž…(Package)

- ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๋ณธํƒ€์ž…(primitive type)๊ณผ ์ฐธ์กฐํƒ€์ž…(reference type)์ด ์žˆ๋‹ค.

- ๊ธฐ๋ณธํƒ€์ž… : ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋…ผ๋ฆฌ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…

                ๊ธฐ๋ณธํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” 2์‹ค์ œ ๊ฐ’์„ ๋ณ€์ˆ˜์•ˆ์— ์ €์žฅ

- ์ฐธ์กฐํƒ€์ž… : ๊ฐ์ฒด ์ฃผ์†Œ ์ฐธ์กฐํ•˜๋Š” ํƒ€์ž…, ๋ฐฐ์—ด, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…

                ์ฐธ์กฐํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’์„ ๋ณ€์ˆ˜ ์•ˆ์— ์ €์žฅ

                ์ฐธ์กฐํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜ ์Šคํƒ(stack)์˜์—ญ์— ์ฃผ์†Œ๊ฐ’ ์ €์žฅ

                ๋‚ด๋ถ€์˜ ์‹ค์ œ ๊ฐ’์€ ํž™(heap)์˜์—ญ์— ์ €์žฅ

 

 

 

4. String์˜ ๋น„๊ต๋ฉ”์„œ๋“œ

- ์ž๋ฐ”๋Š” ๋ฌธ์ž์—ด์ด ๋™์ผํ•˜๋‹ค๋ฉด String๊ฐ์ฒด ๊ณต์œ ํ•˜๋„๋ก ๋˜์–ด์žˆ์Œ

- ๋‹จ์ˆœํžˆ ๋ฌธ์ž์—ด์„ String๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ๋‹ค๋ฉด ๊ฐ™์€ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋จ.

- String๊ฐ์ฒด๋ฅผ newํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ง์ ‘ heap์˜์—ญ์— ์ƒ์„ฑํ•œ๋‹ค๋ฉด ๋ฌธ์ž์—ด ๋‚ด์šฉ ๊ฐ™๋”๋ผ๋„ ๋‹ค๋ฅธ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด ๋™๋“ฑ, ๋น„๋™๋“ฑ(==, !=)์˜ ๊ฒฐ๊ณผ๋Š” false๋กœ ๋‚˜์˜ค๊ฒŒ ๋จ.

   -->๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด ๋‚ด์šฉ ๊ฐ’ ๊ทธ ์ž์ฒด๋ฅผ ๋น„๊ตํ•  ๋•Œ๋Š” equals()๋ฉ”์„œ๋“œ ์‚ฌ์šฉํ•ด์•ผํ•จ.

๋ฌธ์ž์ฃผ์†Œ ๋น„๊ต

 

๋ฌธ์ž์—ด ๋น„๊ต๋ฐฉ๋ฒ•

728x90