ํ๋ ์์ํฌ๋ฅผ ์ํ JAVA (1) - Java ์ด์ผ๊ธฐ
1. ๊ฐ๋ฐ ํ๊ฒฝ
- JDK ์ค์น
- JVM ํ์ → ์๋ฐ๋ฅผ ์คํ ์ํค๊ธฐ์ํ ํ๊ฒฝ : JRE
- JRE(์คํํ๊ฒฝ) + ๊ฐ๋ฐtool ⇒ ๊ฐ๋ฐํ๊ฒฝ : JDK (java ๋ช
๋ น: ์คํ๋ช
๋ น + javac ๋ช
๋ น : ๋น๋ ๋ช
๋ น)
- java.oracle.com ์์ ๋ค์ด๋ก๋
- path ์ค์
JVM์ด๋?
java virtual machine์ ์ค์๋ง๋ก ์๋ฐ๊ฐ OS์ ์ข ์ ๋ฐ์ง ์๊ณ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ์ ์ปดํจํฐ์ด๋ค. ์ฆ, ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ด๋ค.์๋ฐ์์ค๋ก ๋ถํฐ ๋ง๋ค์ด์ง ๋ฐ์ด์ด๋ฆฌ ํ์ผ์ธ .class ํ์ผ์ ์คํ์ํค๊ธฐ ์ํด ํ์ํ๊ณ GC๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ต์ ํํ๋ค.
reference. https://coding-factory.tistory.com/m/828
commandline ๋ช ๋ น์ด
- vi HellowWorld.java : java ํ์ผ ์์ฑ
- cat HellowWorld.java : java ํ์ผ ๋ณด๊ธฐ
- javac HelloWorld.java : ์ปดํ์ผ → class ํ์ผ(์คํ๋๊ธฐ ์ํ byte ํ์ผ) ์์ฑ
- java HellowWorld : ์คํ
vscode -> java extesion pack ์ค์น
2. ๋น๋ tool
์๋์ผ๋ก ๋น๋, ์คํํด์ฃผ๋ tool
Build tool : Ant, Maven, Gradle
- Gradle ์ค์น
build script DSL → ๋น๋๋ฅผ ์ด๋ป๊ฒ ํ ์ง, ๋น๋ ์คํฌ๋ฆฝํธ ์ธ์ด ์ง์ → ์ต๊ทผ์ kotlin์ธ์ด๋ฅผ ์ฌ์ฉํ๋ คํ์ง๋ง ๊ธฐ์กด Groovy๊ฐ ์์ง ๋ง์ด ์ฌ์ฉ๋๋ค.
๋น๋ ๋๊ตฌ ์ฌ์ฉ ์ด์ ?
๋๊ท๋ชจ ํ๋ก์ ํธ์์ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์๋์ผ๋ก ํธ์ถํ๋ ๊ฒ์ ์ค์ฉ์ ์ด์ง ์๋ค. ๋ฌด์์ ๋น๋ํ ์ง, ์ด๋ค ์์๋ก ํ ์ง, ์ด๋ค ์์กด์ฑ์ด ์๋ ์ง ๋น๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ผ๊ด๋๊ฒํ ์ ์๋ค. ํ๋ก์ ํธ ์์ฑ, ํ ์คํธ ๋น๋, ๋ฐฐํฌ ๋ฑ์ ์์ ์ ์ํํ๋ค.
commandline ๋ช ๋ น์ด
- gradle init ์ผ๋ก ํ๋ก์ ํธ ์์ฑ
- gradle tasks : ํ ์คํฌ ๋ชฉ๋ก ํ์ธ
- gradle build : ๋น๋
- gradle run : ์คํ
3. IDE ํตํฉ๊ฐ๋ฐํ๊ฒฝ
๋ง์ด ์ฌ์ฉํ๋ java IDE : Eclipse, Interllij
JetBrains์ Interllij
Spring์ ์ฌ์ฉํ๊ธฐ์ํด์ Ultimate ๋ฒ์ ์ฌ์ฉ
์ ์ฉํ ๋จ์ถํค
: Option + Enter : ๋น ๋ฅธ ์์
: Command + 1 : ํด๋์ฐฝ์ผ๋ก ์ปค์ ์ด๋
: Command + N : ์ํ์ผ ์์ฑ
: Shift + Shift : ํ์ผ ์ด๋ฆ ๊ฒ์
: Option + Up/Down : ๋จ๊ณ๋ณ ๋ธ๋ญ ์ง์
: Command + Option + L : ์ฝ๋ ๋ฆฌํฌ๋ฉํ
: Ctrl + T : ์ฝ๋ ๋ฆฌํํ ๋ง ๋ฉ๋ด
: Command + Shift + A : ๋ช ๋ น์ด ๊ฒ์
4. ์ด๋ณด๊ฐ๋ฐ์๊ฐ ์๋ฉด ์ข์ ์ ๋ณด
์ผ๋ฐ์ ์ธ ์๋ฐ ์ฝ๋ฉ ๋ฃฐ
- ํด๋์ค๋ช ์ ๋๋ฌธ์๋ก ์์
- ๋ฉ์๋๋ ๋ณ์๋ช ์ ์๋ฌธ์๋ก ์์
- ์ธ๋๋ฐ๊ฐ์๋ ์นด๋ฉ์ผ์ด์ค
Reference
- Java์์๋ alloc/free ๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ผ์ผํ ์ ๊ฒฝ์ฐ์ง์์๋๋๋ค.(O)
- Java๋ฅผ ํ๋ฉด ํฌ์ธํฐ๋ฅผ ๋ชฐ๋ผ๋๋๋ค. (X)
- Java์์๋ ํฌ์ธํฐ ๋์ ๋ํผ๋ฐ์ค๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํ๋ค.
- Java ์์๋ 8๊ฐ์ Primitive๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ๊ฒ์ด ๋ํผ๋ฐ์ค ๊ฐ์ด๋ค.
- boolean, byte, int, short, long, float, double, char
- array๋ reference๋ก ์ทจ๊ธํฉ๋๋ค.
- Call by value / Call by reference
(์ถํ ์ถ๊ฐ ์์ )
Constant Pool
- String์ ํน๋ณํ๊ฒ ์ทจ๊ธํ๋ค. / constant pool์ ์ด์ฉํ๋ค.
- string์ ๋ํด์ += ์ฐ์ฐ์ ์ฌ์ฉํ์ง ๋ง์
- StringBuffer๋ฅผ ์ฌ์ฉํ์
- StringBuffer ์ StringBuilder์ ์ฐจ์ด
(์ถํ ์ถ๊ฐ ์์ )
Object
- ๋ชจ๋ ๊ฐ์ฒด์ ์ต์์ ๊ฐ์ฒด์ ๋๋ค.
- ์ฆ, ๋ชจ๋ ๊ฐ์ฒด์๋ Object์ ๋ฉ์๋๋ฅผ ํธ์ถํ ์์๋ค.
- Object์ ์ด๋ค ๋ฉ์๋๊ฐ ์๋ ์ง ์ด๋ค ๊ธฐ๋ฅ์ ์ํํ๋์ง
- toString() / equal() / hashCode() ๋ฑ
Git
- .gitignore ์ ํ์ฉํ๊ธฐ
ํฌํจ๋์ง ์์์ผํ๋ ํ์ผ
: ๋น๋๊ฒฐ๊ณผ(buildํด๋), ๋ฐ์ด๋๋ฆฌ, ์ ๋๋ ์ดํธ ๊ฐ๋ฅํ ํ์ผ๋ค(gradle - gradle wrapper ๋ช ๋ น์ด๋ก ์์ฑ๊ฐ๋ฅ), ๋ก์ปฌ์ค์ , ํค/๋ณด์ ๊ด๋ จ
: *.class , *.jar, build/
'Back-end ๋ฐ๋ธ์ฝ์ค > week 01 - 02 TIL (java, DB)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 221024 - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์๊ฐ (0) | 2022.10.24 |
---|---|
[TIL] 221021 - Java ์ค์ต ํ๋ก์ ํธ : ์ซ์์ผ๊ตฌ ๊ฒ์ (0) | 2022.10.21 |
[TIL] 221020 - Java์ Collection (0) | 2022.10.21 |
[TIL] 221019 - Java์ Interface (0) | 2022.10.19 |
[TIL] 221018 - Java์ OOP (2) | 2022.10.18 |
๋๊ธ