TIL (Today I Learned)/Java
[Java] Static ๋ณ์
loki d
2021. 12. 18. 17:15
728x90
[Java] Static ๋ณ์
- java์์ static์ผ๋ก ๋ณ์๋ ํจ์๋ฅผ ๋ง์ด ์ ์ธํด ์๋ค.
- ๋ฉ๋ชจ๋ฆฌ์ ์ด์ ์ ์ ํํ ์๊ธฐ ์ํด ์ ๋ฆฌํด ๋ณด์
Static
- Java์์ Static์ด๋ ํค์๋๋ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ฒ ํ ๋น๋์ด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ ๋ ํด์ ๋๋ ๊ฒ์ ์๋ฏธ
- ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ํด์๋ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ Load
- ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ๋ณ์๋ค์ ์ง์ ํ ๋ฉ๋ชจ๋ฆฌ๋ ํ์
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ๊ณต๊ฐ ๊ตฌ์กฐ

1. Code ์์ญ
- ์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ์์ญ์ผ๋ก CPU๋ Code์์ญ์ ์ ์ฅ๋ ๋ช ๋ น์ด๋ฅผ ํ๋์ฉ ๊ฐ์ ธ๊ฐ ์ฒ๋ฆฌ
2. Data ์์ญ
- ํ๋ก๊ทธ๋จ์ ์ ์ญ๋ณ์์ static๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ
- ํ๋ก๊ทธ๋จ์ ์์๊ณผ ํจ๊ป ํ ๋น๋๋ฉฐ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋๋ฉด ์๋ฉธ
3. Stack ์์ญ
- ํจ์์ ํธ์ถ๊ณผ ๊ด๊ณ๋๋ ์ง์ญ๋ณ์์ ๋งค๊ฐ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ
- ํจ์์ ํธ์ถ๊ณผ ํจ๊ป ํ ๋น๋๋ฉฐ ํจ์์ ํธ์ถ์ด ์๋ฃ๋๋ฉด ์๋ฉธ
- Stack ์์ญ์ LIFO(Last In First Out) ๊ตฌ์กฐ๋ก ๋์ ์ฃผ์์์ ๋ฎ์ ์ฃผ์์ ๋ฐฉํฅ์ผ๋ก ํ ๋น
4. Heap ์์ญ
- ์ฌ์ฉ์๊ฐ ์ง์ ๊ด๋ฆฌํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- ์ฌ์ฉ์์ ์ํด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋์ ์ผ๋ก ํ ๋น๋๊ณ ํด์
- Stack๊ณ ๋ฐ๋๋ก Heap์ ๋ฎ์ ์ฃผ์์์ ๋์ ์ฃผ์์ ๋ฐฉํฅ์ผ๋ก ํ ๋น
์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ํ๋ก๊ทธ๋๋ฐํ์ฌ ๋ง๋๋ Class๋ Static์์ญ์ ์์ฑ๋๊ณ new ์ฐ์ฐ์ ํตํด ์์ฑํ ๊ฐ์ฒด๋ Heap ์์ญ์ ์์ฑ๋๋ค.
- Static ๋ณ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์์์ Data์์ญ์ ์ ์ฅ๋๋ฉฐ ์ด๋ ๋ฉ๋ชจ๋ฆฌ์์ ํ๋ฒ ํ ๋น๋๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ ๋ ํด์ ๋๋ค๋ ๊ฒ์ ์๋ฏธ
- Class๊ฐ ์ฌ๋ฌ๋ฒ ์์ฑ๋์ด๋ ํด๋์ค ๋ด๋ถ Static ๋ณ์๋ ๋ฑ ํ๋ฒ๋ง ์์ฑ
- ๊ฐ์ฒด ์์ฑ์ ํ ๋น๋ Heap ์์ญ์ ๋ฉ๋ชจ๋ฆฌ๋ Garbage Collector๋ฅผ ํตํด ์์๋ก ๊ด๋ฆฌ๋ฅผ ๋ฐ๋๋ค.
- Static ์์ญ์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ๊ณต์ ํ๋ ๋ฉ๋ชจ๋ฆฌ๋ผ๋ ์ฅ์ ์ด ์์ง๋ง GC์ ๊ด๋ฆฌ ์์ญ ๋ฐ์ ์กด์ฌํ๋ฏ๋ก Static์ ๋จ๋ฐํ๋ฉด ์์คํ ์ ํผํฌ๋จผ์ค์ ์ ์ํฅ์ ๋ผ์น๋ค.
- Static๋ณ์์ Global๋ณ์๋ ํผ์ฉํด์ ์ฐ์ธ๋ค.
- ๊ณตํต์
- Data ์์ญ์ ์ ์ฅ๋๊ณ ๋ผ์ดํํ์์ด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ ๋๊น์ง์ด๋ค.
- ์ฐจ์ด์
- Global : ๋ค๋ฅธ ํ์ผ์์๋ ํด๋น ๋ณ์์ ์ ๊ทผ ๊ฐ๋ฅ
- Static : ๋ค๋ฅธ ํ์ผ์์๋ ์ ๊ทผ ๋ถ๊ฐ, ํด๋น ํ์ผ๋ด์์ scope์ ๋ง๊ฒ ์ ๊ทผ ๊ฐ๋ฅ
์ฐธ์กฐ
- ๊ณตํต์