Bibi's DevLog ๐ค๐
[Java] ์๋ฐ ์์์ ์์ ์ปจ๋ฒค์ / System.exit(0) ๋ณธ๋ฌธ
[Java] ์๋ฐ ์์์ ์์ ์ปจ๋ฒค์ / System.exit(0)
๋น๋น bibi 2021. 3. 2. 23:42๋ฆฌ๋ทฐ์ด ๋ถ๊ป์ ๋ง์ง๋ง ์ฝ๋ฉํธ๋ฅผ ๋ฌ์ ์ฃผ์ ๋ด์ฉ์ ๋ฐฐ์ธ ์ ์ด ๋ง์์, ๊ทธ ๋ถ๋ถ์ ์ ๋ฆฌํ๋ค.
์๋ฐ ์์์ ์์ ์ปจ๋ฒค์
Q.
์๋ฐ ์์๋ช ์ ๋ชจ๋ ๋๋ฌธ์์ Snake Case๋ฅผ ์ด๋ค, ์ง์ญ๋ณ์๋ ์๋ฌธ์์ Camel Case๋ฅผ ์ด๋ค ์ด ์ ๋๋ง ์๊ณ ์๋๋ฐ, ์์ ๊ฐ์ด ์ง์ญ๋ณ์์ธ ์์์ ๊ฒฝ์ฐ๋ ์ด๋ป๊ฒ ์ง์ด์ผ ํ๋์?๐ค
์ฐ์ ์ ์์๋๊น ๋๋ฌธ์๋ก ์ฐ๊ธด ํ๋๋ฐ, ์ด๋ฐ ๊ฒฝ์ฐ ์์์ด๊ธฐ ์ ์ ์ง์ญ๋ณ์์ด๋ฏ๋กstart
end
์ด๋ฐ ์์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋ ๊ฑด๊ฐ์?์ฝ๋ฉํธ ๊ฐ์ฌํฉ๋๋ค!๐โโ๏ธ
A.
The names of variables declared class constants and of ANSI constants should be all uppercase with words separated by underscores ("_"). (ANSI constants should be avoided, for ease of debugging.)e
Code Conventions for the Java Programming Language : 9 - Naming Conventions์ ๋ฐ๋ฅด๋ฉด static final์ด ๋ถ์ ํด๋์ค ์์๋ ๋๋ฌธ์ ์ธ๋์ค์ฝ์ด๋ฅผ ์ฌ์ฉํ ๋ค์ด๋ฐ ๊ท์น(uppercase with words separated by underscores ("_")
)์ ๋ฐ๋ฅธ๋ค๊ณ ๋์์์ต๋๋ค. ์๋ฐ์์ final์ด ๋ถ์ผ๋ฉด ์ฌํ ๋น์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋
์ ์์์ด๊ธด ํ์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์๋ฐ ์์๋ผ๊ณ ํ๋ฉด static final ๋ถ์ ํด๋์ค ์์๋ฅผ ๋งํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ๋ ํด๋์ค ์์์ ์๋ฏธ์์ ์๋ฐ ์์๋ก ์ ์ธํ ๊ฒ์ ๋ง์๋๋ ธ์ต๋๋ค. ์ฐพ์๋ณธ ์๋ฃ๋ ๊ทธ๋์ ๋ดค๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด static์ด ๋ถ์ง ์์ ์ธ์คํด์ค ์์๋, ์ ์ฝ๋์ฒ๋ผ ๋ฉ์๋ ๋ด๋ถ์ ์ง์ญ ๋ณ์๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ ์นด๋ฉ ์ผ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๊ฒ ๊ฐ์ต๋๋ค. (๋ฌผ๋ก ์ํ ํ์ ์ปจ๋ฒค์
์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.)
ํ์ฌ ์ฝ๋์์ START,END๋ ํด๋์ค ์์๋ก ์ ์ธํ๋๊ฒ ๋ ๋์๋ณด์ ๋๋ค. ๊ทธ ์ด์ ๋ "start", "end"๋ผ๋ ๋ฌธ์์ด์ด ๋ฉ์๋๊ฐ ์คํ๋ ๋๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋์๋ค๊ฐ ๋๋ ๋ ํด์ ๋ ํ์๊ฐ ์๊ณ , ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋๋ง๋ค ๋งค๋ฒ ์ด๊ธฐํ๊ฐ ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ๋ฒ static ์ผ๋ก ์ด๊ธฐํ ํ๋ค ๋ฉ์๋๋ ๊ฐ์ฒด์ ํธ์ถ ํ์์ ์๊ด์์ด ์ฌ์ฌ์ฉ ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ ๋ฆฌํ์๋ฉด,
- ์๋ฐ์์ final์ ๋ถ์ฌ ๋ง๋ ๋ณ์(์์)๋ ํด๋์ค ์์์ ํํด
๋๋ฌธ์ ์ธ๋์ค์ฝ์ด
๋ฅผ ์ฌ์ฉํ ๋ค์ด๋ฐ์ ํ๊ณ , ๋๋จธ์ง๋์นด๋ฉ ์ผ์ด์ค
๋ฅผ ์ฌ์ฉํ๋ค. - ์ ์ฝ๋์ ๊ฒฝ์ฐ๋ ํด๋์ค ์์๋ก ์ ์ธํ๋๊ฒ ๋ซ๋ค.
๊ด๋ จ ๋ด์ฉ์ ๋งํฌ๋ฅผ ์ฒจ๋ถํ ํ ๋ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ๊ณ ๋ฏผํด์ฃผ์ธ์๐
- Naming convention: Final fields (not static)
- Use of final local variables in java - Stack Overflow
- What is a constant and how to define constants in Java?
- why are java constants declared static?
- ์ ์๋ฐ์์ final ๋ฉค๋ฒ ๋ณ์๋ ๊ด๋ก์ ์ผ๋ก static์ ๋ถ์ผ๊น?
System.exit(0)
Q
System.exit(0);
์ด ๊ผญ ํ์ํ ๊น์?
์์ด๋ ์ ์ข ๋ฃ๋๊ธด ํ์ง๋ง, ์ฌ๊ธฐ์ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ค๋ ๊ฑธ ๋ช ์์ ์ผ๋ก ๋ํ๋ด๊ณ ์ถ์ด์ ์ฌ์ฉํ์ต๋๋ค. ์ฌ์ฉํ๋ฉด ์ ์ข์ ๋ฉ์๋์ธ๊ฐ์?๐ฎ (์ฐ์ ์ญ์ ํ์ต๋๋ค!)
A
System.exit(0);
๋ ๋ฉ์ธ ๋ฉ์๋๋ฅผ ์ข
๋ฃํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ํฉ๋๋ค. ์ด ์ฝ๋๊ฐ ์์ด๋ ๋ฉ์ธ ๋ฉ์๋๊ฐ ์ ์์ ์ผ๋ก ์ข
๋ฃ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ํ์์๋ ์ฝ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. System.exit(0)
๋ฅผ ์ฌ์ฉํด์ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์์ ๊ฒ ๊ฐ๋ค์.
- ํน์ ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ๋ฐ๋ก ์ฒ๋ฆฌํ์ง ์๊ณ ๋ฐ๋ก ํ๋ก๊ทธ๋จ ์ข ๋ฃ
- ๋ฉ์ธ ๋ฉ์๋๊ฐ ์๋ ๊ณณ์์ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๊ณ ์ถ์๋
The typical use-case for System.exit is when there is an abnormal condition and we need to exit the program immediately.
Also, if we have to terminate the program from a place other than the main method, System.exit is one way of achieving it.
์๋ ๋งํฌ ๊ธ๋ ํ ๋ฒ ์ฝ์ด๋ณด์ธ์~
'๐ฅ BE ๋ฐฑ์๋ > Java ์๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด(๊ธฐ์ด) (0) | 2021.03.02 |
---|---|
[Java] static import์ static๋ฉ์๋ (0) | 2021.03.02 |
[Java] ๊ฐํ๋ฌธ์, System.getProperty("line.separator") (1) | 2021.02.25 |
[Java] ์คํธ๋ฆผ, ์คํธ๋ฆผ์ ์ฐ์ฐ, Optional (0) | 2021.02.23 |
[Java] ๋๋ค์, ํจ์ํ ์ธํฐํ์ด์ค (0) | 2021.02.23 |