๐ static : '์ ์ ์ธ' ์ด๋ผ๋ ๋ป์ผ๋ก, JAVA์์ ํ๋ก๊ทธ๋จ ์คํ ์์ ์ ๋ง๋ค์ด์ง๊ณ ํ๋ก๊ทธ๋จ ์ข ๋ฃ ์์ ์ ์ ๊ฑฐ๋๋ค๋ ํน์ง์ ๋ถ์ฌ์ง ์ด๋ฆ.
์ ์ ๋ฉค๋ฒ : ์ ์ ๋ณ์(ํ์) + ์ ์ ๋ฉ์๋
์ ์ ๋ณ์ (= ํด๋์ค ๋ณ์, Static ๋ณ์) : Static์ด ๋ถ์ ๋ฉค๋ฒ ๋ณ์
- ์ ์ ๋ณ์๋ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์์ํ ๋ ๋ฑ 1๊ฐ ๋ง๋ค์ด์ง๋ค. ์ธ์คํด์ค ๋ณ์์ ๋ค๋ฅด๊ฒ ๋ณดํต ์ฌ๋ฌ๊ณณ์์ ๊ณต์ ํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
- ํด๋์ค์์ ๊ณต์ฉ์ผ๋ก ๊ด๋ฆฌํ๋ค.
- ์ธ์คํด์ค๊ฐ ์๋ ํด๋์ค๋ฅผ ํตํด์ ์ ๊ทผํ๋ ๊ฒ์ด ๋ ๋ช ํํ๋ค.
์ ์ ๋ฉ์๋ (=ํด๋์ค ๋ฉ์๋) : Static์ด ๋ถ์ ๋ฉ์๋
- ์ธ์คํด์ค(๊ฐ์ฒด) ์์ฑ ์์ด ํด๋์ค์ ์๋ ๋ฉ์๋๋ฅผ 'ํด๋์ค์ด๋ฆ.๋ณ์๋ช
'์ผ๋ก ๋ฐ๋ก ํธ์ถํ ์ ์๋ค.
- ์ฐธ์กฐ๊ฐ์ ๊ฐ๋ ์ด ์์
- ํด๋์ค ๋ด๋ถ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋, ์ ์ ๋ฉ์๋๋ ์ธ์คํด์ค ๋ณ์๋, ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ๊ฐ๋จํ ๋ฉ์๋ ํ์ฉ์ผ๋ก ๋๋๋ ์ ํธ๋ฆฌํฐ์ฑ ๋ฉ์๋์ ์์ฃผ ์ฌ์ฉํ๋ค. (์ ํธ๋ฆฌํฐ์ฑ ๋ฉ์๋)
๐ ์ ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ํน์ ๋ฉ์๋๋ฅผ ์์ฃผ ํธ์ถํด์ผํ๋ค๋ฉด,
Static import ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ํด๋์ค ๋ช ์ ์๋ตํ๊ณ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ค.
โ๏ธ ์๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ โ๏ธ
์๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ ํฌ๊ฒ ๋งค์๋ ์์ญ, ์คํ ์์ญ, ํ ์์ญ 3๊ฐ๋ก ๋๋ ์ ์๋ค.
- ๋ฉ์๋ ์์ญ : ํ๋ก๊ทธ๋จ์ ์คํํ๋๋ฐ ํ์ํ ๊ณตํต ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ค.
- ํด๋์ค ์ ๋ณด
- Static ์์ญ
- ๊ณตํต ๋ฆฌํฐ๋ด ์์
- ์คํ ์์ญ : ์ค์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ์์ญ์ผ๋ก, ๋ฉ์๋๋ฅผ ์คํํ ๋ ๋ง๋ค ํ๋์ฉ ์์ธ๋ค.
- ๋ฉ์๋๋ฅผ ํธ์ถํ ๋๋ง๋ค ํ๋์ ์คํ ํ๋ ์์ด ์์ด๊ณ ๋ฉ์๋๊ฐ ์ข
๋ฃ๋๋ฉด ํด๋น ์คํ
ํ๋ ์์ด ์ ๊ฑฐ๋๋ค.
(์ ํํ๋, ๊ฐ ์ฐ๋ ๋๋ณ๋ก ํ๋์ ์คํ ์คํ ์ด ์์ฑ๋๋ค.)
- ๋ฉ์๋๋ฅผ ํธ์ถํ ๋๋ง๋ค ํ๋์ ์คํ ํ๋ ์์ด ์์ด๊ณ ๋ฉ์๋๊ฐ ์ข
๋ฃ๋๋ฉด ํด๋น ์คํ
ํ๋ ์์ด ์ ๊ฑฐ๋๋ค.
- ํ ์์ญ : ๊ฐ์ฒด(์ธ์คํด์ค)๊ฐ ์์ฑ๋๋ ์์ญ. new ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์์ญ์ ์ฌ์ฉํ๋ค.
- ๋ ์ด์ ์ฐธ์กฐ๋์ง ์๋ ๊ฐ์ฒด๋ GC์ ์ํด ์ ๊ฑฐ๋๋ค.
โ๏ธ Static ์์ญ์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ๊ณต์ ํ์ฌ ํ๋์ ๋ฉค๋ฒ๋ฅผ ์ด๋์๋ ์ง ์ฐธ์กฐํ ์ ์๋ ์ฅ์ ์ ๊ฐ์ง์ง๋ง GC์ ๊ด๋ฆฌ ๋ฐ์ ์์ญ์ ์กด์ฌํ๊ธฐ์ Static ์์ญ์ ์๋ ๋ฉค๋ฒ๋ค์ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃ์๊น์ง ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋ ์ฑ๋ก ์กด์ฌํ๊ฒ ๋๋ฏ๋ก ๊ผญ ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
'Language > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ๋ฉ๋ชจ๋ฆฌ ์์ญ (0) | 2024.08.25 |
---|---|
[JAVA] ์ค๋ ๋(Thread) ์๋ฏธ์ ์ฌ์ฉ๋ฒ (4) | 2024.08.24 |
[JAVA] ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค (0) | 2024.08.19 |
[JAVA] ๊ฐ์ฒด(Object)๋? (0) | 2024.08.16 |
[JAVA] ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ 4๊ฐ์ง ํน์ง - ์บก์ํ, ์์์ฑ, ๋คํ์ฑ, ์ถ์ํ (1) | 2024.08.16 |