๐Today...
์ค๋๋ถํฐ ์๋ฐ ๊ธฐ์ด๋ฅผ ์์ํ๋ค.๐ถ ์ ์ฒ๊ธฐ์ค๋น์ ๋ฐฉํต๋๊น์ง ๊ฒน์น๋๊น ํ๋ฃจ๊ฐ ์ง์ง ์์ญ๋นํ๋ค...ใ ใ ใ ใ
๊ทธ๋๋ ์์ํ ํ๋ณต์ ์ฐพ๋ ์ฌ๋์ด๋์~^^ ํ ์์๋ค. ํ์ดํ !
โ์ค๋์ TIL(Today I Learn)
๊ฐ๋ฐํ๊ฒฝ ์ธํ
# ์์
- JDK ์ค์น
- IntelliJ ์ค์น
- JetBrains Toolbox ์ค์น
- ์๋ฐ ํ๊ฒฝ๋ณ์ ์ค์ (windows)
์๋ฐ JDK ์ค์น์ ๊ฒฝ์ฐ๋ ๋ฉ๋ด์ผ์ ๋ณด๊ณ ๋ฐ๋ผํ๋ฉด ๊ธ๋ฐฉ ์ ์ฉํ ์์์๋ค. JDK๋ฒ์ ์ ๊ฒฝ์ฐ์ ํ์ฌ 17๋ฒ์ ๊น์ง ์ถ์๋์๋๋ฐ ์ค์ต๊ฐ์๋ 11๋ฒ์ ์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. ๋ค์์ ์๋ฐ 8-16๋ฒ์ ๋ ํผ๋ฐ์ค์ 17๋ฒ์ ํน์ง์ด ์ ๋ฆฌ๋ ๋ ํผ๋ฐ์ค์ด๋ค.
https://blogs.oracle.com/java/post/announcing-java17
https://blogs.oracle.com/javakr/post/java8-16
๋ฒ์ ๋ค์ ๋ถ์ด์๋ LTS(Long Term Support)๋ ๊ฐ๋ฐ๋๊ตฌ์ ๋ํด ์ฅ๊ธฐ์ ์ธ ๊ด๋ฆฌ์ ์ง์์ด ๋๋ ๋ฒ์ ์ ์๋ฏธํ๊ณ ์ผ๋ฐ๋ฒ์ ๊ณผ ๋ฌ๋ฆฌ ์์ ์ฑ์ ์ค์ ์ ๋์๋ค๊ณ ํ ์์๋ค.
์๋ฐ(JAVA) ๋?
JAVA๋ 1991๋ ์ฌ๋ง์ดํฌ๋ก์์คํ ์ฆ์ฌ์์ ์ ์์ค ๊ณ ์ฌ๋ง์ด ๊ณ ์ํ์๊ณ , ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ธ์ด์ด๋ค(Object Oriented Programming, OOP). ์ด์์ฒด์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ์ด ๊ฐ๋ฅํ๊ณ "Write Once, Run Anywhere" ์ด๋ผ๋ ์ฌ๋ก๊ฑด์ ๋ด์ธ์ฐ๊ณ ์๋ค. ๊ตญ๋ด์์๋ ์ ์์ ๋ถ ํ๋ ์์ํฌ ๋ฑ์ ์ฌ์ฉ๋๋ฉด์ ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ถ์ผ์์ ๋ณดํธ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์๋ค.
# ์๋ฐ์ ํน์ง
- ์๋ฐ๋ ๊ฐ์ฒด์งํฅ ์ธ์ด์ด๋ค.
- ์ด์์ฑ์ด ๋๋ค. (JVM์ด ์ค์น๋ ๋ชจ๋ ์ฅ์น์์ ๋์)
- ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ด์ ์ปดํ์ผ์ธ์ด์ด๋ค.(ํ์ด๋ธ๋ฆฌ๋)
- ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ค.(Garbage Collector)
- ๋ฉํฐ ์ค๋ ๋ ๊ตฌํ์ด ์ฝ๋ค.
- ๋์ ๋ก๋ฉ์ ์ง์ํ๋ค.
- ๋ถ์ฐํ๊ฒฝ์ ์ง์ํ๋ค.
- ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ๋ถํ๋ค.
# ๋จ์
C++, C์ ๊ฐ์ ์ธ์ด๋ค์ ๋นํด ์คํ์๋๊ฐ ๋๋ฆฌ๋ค. ์ด๋ ์คํ์ ์ํด ์๋ฐ ๊ฐ์๋จธ์ ์ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ํ๋ถ์์ผ๋ ์๋ฐ๋ฅผ ๊ธฐํผํ๋ ์ด์ ์ค ํ๋์ธ๋ฐ, ์ฝ๋์ ๊ธธ์ด๊ฐ ๊ธธ๋ค...๊ฐ์ ์ถ๋ ฅ์ ๋ค๋ฅธ์ธ์ด๋ก ์ฝ๋ฉํ์๋๋ณด๋ค ํจ์ฌ ๊ธธ๊ฒ ๋๊ปด์ง๋ค.
ํ์
# ๋ณ์
๊ฐ์ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ , ์ฌ๋์ด ์๋ณํ ์ ์๋ ์ด๋ฆ์ ๋ถ์ธ ๊ฒ.
# ๋ณ์ ๋ช ๋ช ๊ท์น
์ด์ ์ ๋ธ๋ก๊ทธ์ ํฌ์คํ ํ๋ ๊ธ์ด ์์ผ๋ ์ฐธ๊ณ ํ๊ธฐ..!
์๋๋ ์๋ฐ๋ช ๋ช ๊ท์น์ ๋ํ ๋ ํผ๋ฐ์ค์ด๋ค.
https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html
#์์
JAVA์์ ์์๋ final ์ด๋ผ๋ ํค์๋๋ฅผ ํตํด ์ ์ธํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์์ ์ ์ธ์ ๋๋ฌธ์์ ์ธ๋๋ฐ๋ฅผ ๋ฃ๋(SCREAMING_SNAKE_CASE)๋ฅผ ์ฌ์ฉํ๋ค.
final double PI = 3.14;
์์๋ ๋ค์๊ณผ ๊ฐ์ 3๊ฐ์ง ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
1. ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉฐ์ ๊ฐ์ด ๋ณํ๋ฉด ์๋๋ ๊ฒฝ์ฐ
2. ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ ์ถ์ ๊ฒฝ์ฐ
3. ์ฝ๋ ์ ์ง๊ด๋ฆฌ๋ฅผ ์์ฝ๊ฒ ํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ
# ์ ์ / ์ค์ ํ์
๊ตฌ๋ถ | ํ์ | ๋ฉ๋ชจ๋ฆฌ | ํํ ๋ฒ์ |
์ ์ | byte | 1byte | -128(-27) ~ 127(27 - 1) |
์ ์ | short | 2byte | -32,768(-215) ~ 32,767(215 - 1) |
์ ์ | int | 4byte | -2,147,483,648(-231) ~ 2,147,483,647(231 - 1) |
์ ์ | long | 8byte | -9,223,372,036,854,775,808(-263) ~ 9,223,372,036,854,775,807(263 - 1) |
์ค์ | float | 4byte | ์์ : -3.4 * 1038 ~ -1.4 * 10-45 ์์ : 1.4 * 10-45 ~ 3.4 * 1038 |
์ค์ | double | 8byte | ์์ : -1.8 * 10308 ~ -4.9 * 10-324 ์์ : 4.9 * 10-324 ~ 1.8 * 10308 |
๋ ผ๋ฆฌ | boolean | 1byte | true / false |
๋ฌธ์ | char | 2byte | - |
* floatํ์ , longํ์ ์ ๊ฒฝ์ฐ ๋ฆฌํฐ๋ด์ f ,L์ ์ ๋ฏธ์ฌ๋ก ๋ถ์ฌ์ค์ผํ๋ค.
* char๋ก ๋ฆฌํฐ๋ด ์์ฑ์ ์์๋ฐ์ดํ(' ')๋ฅผ ์ฌ์ฉ. ํฐ๋ฐ์ดํ(" ") ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด๋ก ์ธ์๋๋ค.
๋ฌธ์์ด
์๋ฐ์์ ๋ฌธ์์ด์ String ํ์ ์ ์ฌ์ฉํ๋ค. String ํ์ ์ ํฐ๋ฐ์ดํ(" ")๋ก ๊ฐ์ธ์ง ๋ฌธ์์ด์ ์๋ฏธํ๊ณ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ํ ๋นํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
// ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ String ํ์
์ ๋ณ์ str์ ํ ๋นํ๋ ๋ฐฉ๋ฒ
String str = "haeyoung";
// String ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ฌ ํ ๋นํ๋ ๋ฐฉ๋ฒ
String str = new String("haeyoung");
# ๊ธฐ๋ณธ์ ์ธ ๋ฉ์๋
1. length()
2. charAt()
3. compareTo()
4. concat()
5. indexOf()
6. trim()
7. toLowerCase() / toUpperCase()
๐ํผ์์ ํด๊ฒฐํ๊ธฐ
1. StringTokenizer ์ดํดํ๊ธฐ
2. StringBuilder / StringBuffer ์ดํดํ๊ธฐ
3. ์ฐ๋ถํฌ JetBrains ToolBox ์ค์น๊ด๋ จ ์๋ฌ
๊ด๋ จ ๋ ํผ๋ฐ์ค
https://askubuntu.com/questions/1410885/how-to-install-jetbrains-toolbox-in-ubuntu-22-04-lts
sudo apt-get install -y libfuse2