๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
๋ชฉํ ์๋ฐ์ ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ํ์ตํ์ธ์. ํ์ตํ ๊ฒ (ํ์) Thread ํด๋์ค์ Runnable ์ธํฐํ์ด์ค ์ฐ๋ ๋์ ์ํ ์ฐ๋ ๋์ ์ฐ์ ์์ Main ์ฐ๋ ๋ ๋๊ธฐํ ๋ฐ๋๋ฝ ๋ง๊ฐ์ผ์ 2021๋
1์ 23์ผ ํ ์์ผ ์คํ 1์๊น์ง. Thread ํด๋์ค์ Runnable ์ธํฐํ์ด์ค Thread ๋? ๋์ ํ๋ก๊ทธ๋๋ฐ์๋ ํ๋ก์ธ์ค์ ์ค๋ ๋์ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ์คํ ๋จ์๊ฐ ์์ต๋๋ค. JAVA ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋์ ํ๋ก๊ทธ๋๋ฐ์ ๋๋ถ๋ถ ์ค๋ ๋์ ๊ด๋ จ๋ฉ๋๋ค. ํ๋ก์ธ์ค ํ๋ก์ธ์ค์๋ ์์ ํ ๊ฐ์ธ์ฉ ๊ธฐ๋ณธ ๋ฐํ์ ๋ฆฌ์์ค ์งํฉ์ด ์๊ณ ์์ฒด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๋ ์์ต๋๋ค. JAVA ๊ฐ์ ๋จธ์ ์ ๋๋ถ๋ถ์ ๊ตฌํ์ ๋จ์ผ ํ๋ก์ธ์ค๋ก ์คํ๋ฉ๋๋ค. ์ค๋ ๋ ์ค๋ ๋๋ ๊ฒฝ๋ ํ๋ก์ธ์ค๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํฉ๋๋ค. ํ๋ก์ธ์ค์ ์ค๋ ๋ ๋ชจ๋ ์คํ ํ๊ฒฝ์ ์ ..
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
๋ชฉํ ์๋ฐ์ ์์ธ ์ฒ๋ฆฌ์ ๋ํด ํ์ตํ์ธ์. ํ์ตํ ๊ฒ (ํ์) Exception๊ณผ Error์ ์ฐจ์ด๋? ์๋ฐ๊ฐ ์ ๊ณตํ๋ ์์ธ ๊ณ์ธต ๊ตฌ์กฐ RuntimeException๊ณผ RE๊ฐ ์๋ ๊ฒ์ ์ฐจ์ด๋? ์๋ฐ์์ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ (try, catch, throw, throws, finally) ์ปค์คํ
ํ ์์ธ ๋ง๋๋ ๋ฐฉ๋ฒ Exception๊ณผ Error์ ์ฐจ์ด๋ ? java.lang.Object -> Throwable -> Exception, Error Error : JVM์ ๋ฌธ์ (OutOfMemoryError, StackOverFlowError ์ ๊ฐ์ด ๋ฐ์ ์ ๋ณต๊ตฌํ ์ ์๋ ์ฌ๊ฐํ ์ค๋ฅ) ๊ฐ ์๊ธด ๊ฒ์ ์๋ฏธํ๋ค. ์ปดํ์ผ ์๋ฌ : ์ปดํ์ผ ์์ ์ ๋ฐ์ํ๋ ์๋ฌ์ด๋ค. ์ปดํ์ผ๋ฌ๊ฐ ๋ฌธ๋ฒ ๊ฒ์ฌ๋ฅผ ํตํด ์๋ฌ๋ฅผ ์ก์์ฃผ๊ธฐ ๋..
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
์ปดํ์ผ๋ฌ๋ ๋ฉ์๋์ ์๊ทธ๋์ฒ๋ฅผ ์ด์ฉํด์ ๋ฉ์๋๋ฅผ ๊ตฌ๋ถํ๋ค. ๋ฉ์๋ ์๊ทธ๋์ฒ๋ ? ๋ฉ์๋์ ์ด๋ฆ๊ณผ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฉ์๋ ์๊ทธ๋์ฒ๋ผ๊ณ ํ๋ค. ๋ฉ์๋์ ๋ฆฌํด ํ์
์ ํฌํจ๋์ง ์๋๋ค. ์๋์ ์ฝ๋๋ method1 ์ด๋ผ๋ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ก๋ฉํ ์ฝ๋๋ค์ด๋ค. public void method1() { } public void method1(int a) { } public void method1(String s) { } public void method1(int a, int b) { } public int method1(int a, int b) { // compile error! } ๋ฆฌํด ํ์
์ด ๋ฌ๋ผ๋, ์ด๋ฏธ ๊ฐ์ ์๊ทธ๋์ฒ์ ๋ฉ์๋๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ ์๋ฌ๊ฐ ๋๊ฒ ๋๋ค.
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
๋ชฉํ ์๋ฐ์ ์ธํฐํ์ด์ค์ ๋ํด ํ์ตํ์ธ์. ํ์ตํ ๊ฒ (ํ์) ์ธํฐํ์ด์ค ์ ์ํ๋ ๋ฐฉ๋ฒ ์ธํฐํ์ด์ค ๊ตฌํํ๋ ๋ฐฉ๋ฒ ์ธํฐํ์ด์ค ๋ ํผ๋ฐ์ค๋ฅผ ํตํด ๊ตฌํ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์ธํฐํ์ด์ค ์์ ์ธํฐํ์ด์ค์ ๊ธฐ๋ณธ ๋ฉ์๋ (Default Method), ์๋ฐ 8 ์ธํฐํ์ด์ค์ static ๋ฉ์๋, ์๋ฐ 8 ์ธํฐํ์ด์ค์ private ๋ฉ์๋, ์๋ฐ 9 ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค์ ์ฐจ์ด์ ์ถ์ ํด๋์ค(abstract class) ์ธํฐํ์ด์ค(interface) 1. ์ผ๋ฐ ๋ฉ์๋ ํฌํจ๊ฐ๋ฅ 1. ๋ชจ๋ ๋ฉ์๋๋ ์ถ์๋ฉ์๋ ์๋ฐ 8 ์ดํ ๋ถํฐ default ,static ๋ฉ์๋ ์ถ๊ฐ๊ฐ๋ฅ 2. ๋ค์ค์์ ๋ถ๊ฐ๋ฅ 2. ๋ค์ค์์ ๊ฐ๋ฅ 3. ์์, ๋ณ์ ํ๋ ํฌํจ๊ฐ๋ฅ 3. ์์ํ๋๋ง ํฌํจ๊ฐ๋ฅ ์ถ์ ํด๋์ค๋ IS - A ์ด๋ค. ( ๊ฐ๋ ๋๋ฌผ์ด๋ค. ..
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
JDK ํ๊ฒฝ๋ณ์ ์ค์ echo $PATH javac -version java -version ์๋ฐ ๊ฒฝ๋ก ํ์ธ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home .bash_profile ํ๊ฒฝ ๋ณ์ ์ค์ vi ~/.bash_profile vi๋ฅผ ์ด์ฉํ์ฌ bash_profile ํธ์ง ํ๋ฉด์ผ๋ก ๋ฐ๋๊ฒ ๋๊ณ , ์๋์ ์ฝ๋๋ฅผ ์
๋ ฅํด ์ค๋๋ค. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home\ export PATH=${PATH}:$JAVA_HOME/bin: i ๋ฅผ ๋๋ฅด๋ฉด INSERT ๋ชจ๋๊ฐ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ์ฝ๋๋ฅผ ์
๋ ฅํด์ค ๋ค์, esc ๋ฅผ ๋๋ฅด๋ฉด ..
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
๋ชฉํ ์๋ฐ์ ํจํค์ง์ ๋ํด ํ์ตํ์ธ์. ํ์ตํ ๊ฒ (ํ์) package ํค์๋ import ํค์๋ ํด๋์คํจ์ค CLASSPATH ํ๊ฒฝ๋ณ์ -classpath ์ต์
์ ๊ทผ์ง์์(์ ๊ทผ์ ์ด์) pacakage ํค์๋ ์ฐ๋ฆฌ๊ฐ ์ปดํจํฐ์์ ํ ํด๋ ์์ ๋น์ทํ ์ฑ์ง์ด ์๋ ํ์ผ๋ค์ ๋ฃ์ด์ ์ ๋ฆฌํ๋ ๊ฒ ์ฒ๋ผ ์๋ฐ์ ํจํค์ง๋ ์ด๊ฒ๊ณผ ๋์ผํ ๊ฐ๋
์ด๋ค. ์ฅ์ pacakage๋ ํด๋์ค์ ๋ถ๋ฅ๊ฐ ์ฉ์ดํ๋ค. (๋น์ทํ ๊ฒ ๋ผ๋ฆฌ ๋ฌถ๋๋ค) ํจํค์ง๊ฐ ๋ค๋ฅด๋ค๋ฉด ๋์ผํ ํด๋์ค๋ช
์ ์ฌ์ฉํ ์ ์๋ค. Package ๊ณ์ธต FQCN (Fully Qualified Class Name) ๋ชจ๋ ํด๋์ค์๋ ํจํค์ง๊ฐ ์๋ค. String ํด๋์ค์ ํจํค์ง๋ java.lang ์ด๋ฉฐ, FQCN์ java.lang.String์ด ๋๋ค. ์์ Accountํด๋์ค์ ..