1. Java ๊ธฐ๋ณธ ์ง์, ํ๋ก์ ํธ ์์ฑํด๋ณด๊ธฐ(IntelliJ ์ฌ์ฉ)
2. ๋ณ์๋?
3. ์ ์ถ๋ ฅ
4. ํ๋ณํ(Casting)
1-1. ์๋ฐ ์ธ์ด์ ํน์ง
- ์ด๋ค ์ด์์ฒด์ ์์๋ ๋์์ด ๊ฐ๋ฅํ๋ค.
- ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๊ฐ์ฒด ์งํฅ ์ธ์ด๋ผ๋ ๊ฒ์ด๋ค.
- ์ค์ํ์์ ์กด์ฌํ๋ ๊ฒ์ ์ปดํจํฐ์์ ํํํ ์ ์๋๋ก ๋ง๋ค์ด์ง ์ธ์ด์ด๋ค. ๋๋ฌธ์ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ๋น๊ต์ ์ฝ๋ค.
- ๋ค์ํ ๊ฐ๋ฐ ๋๊ตฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์กด์ฌํ๊ธฐ์ ์ด๊ฒ์ ์ฌ์ฉํด ์ํ๋ ์์ ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ํ ์ ์๋ค.
1-2. JVM๊ณผ JDK?
JVM(JavaVirtualMachine)์ "์๋ฐ ๊ฐ์ ๋จธ์ "์ด๋ผ๋ ๋ป์ ๊ฐ๊ณ ์๋ค. ์ด๊ฒ์ ๊ฐ์์ ๊ธฐ๊ธฐ๋ฅผ ๋ง๋ค์ด์ฃผ๋ฉฐ ์ด๋ฅผ ํตํด ๋ค์ํ ์ฅ๋น(PC, ๋ชจ๋ฐ์ผ, ์๋ฒ)์ Java ํ๋ก๊ทธ๋จ์ ์คํ์ํฌ ์ ์๋ค!
JDK(JavaDevelopeKit)๋ "์๋ฐ ๊ฐ๋ฐ ํคํธ" ๋ผ๋ ๋ป์ด๋ค. ์ค์ ๋ก ์๋ฐ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ์ ์๋ ๋๊ตฌ์ด๋ฉฐ .java -> .class ํ์ผ๋ก ๋ณํํด์ฃผ๋ ์ปดํ์ผ๋ฌ์ ๊ธฐ๋ฅ์ด ์๋ค.
*java ์ธ์ด๋ก ๊ฐ๋ฐํ๊ณ ์ถ๋ค๋ฉด ์ธํ ๋ฆฌ์ ์ด, ์ดํด๋ฆฝ์ค ๊ฐ์ IDE ๋๊ตฌ ์ค์น์ ๋๋ถ์ด ์ด JDK ๋ํ ๋ฐ๋์ ์ค์นํด์ฃผ์ด์ผ ํ๋ค.
*๋ฒ์ ์ ๋ฐ๋ฅธ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์์ ์ ์์ผ๋ ํ์ธํ๊ณ ์ค์นํด์ผ ํ๋ค.
1-3. ํ๋ก๊ทธ๋๋ฐ ์ดํดํ๊ธฐ(main ๋ฉ์๋์ ์ฝ๋)
- main๋ฉ์๋๋ ํ๋ก๊ทธ๋จ์ ์์์ ์ด๋ค. Java์ฑ์ด ์คํ๋๋ฉด main ๋ฉ์๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ์คํ์ํค๋ ๊ฒ์ด JVM์ ์ค์ํ ์ญํ ์ค ํ๋์ด๋ค. ๋ฐ๋ผ์ ์๋ฐ ํ์ผ์ ์๋ก ๋ง๋ค๊ณ main method๋ฅผ ์ ์ธํด์ฃผ์ด์ผ ํ๋ค.
#1)public 2)class 3)main :
1)์ธ๋ถ์์ ์คํ์ํฌ ์ ์๋ค๊ณ ํ์ํด์ฃผ๋ ์ ๊ทผ์ ์ด์.
2)๊ฐ์ฒด๋ฅผ ๋ง๋๋ ํด๋์ค๋ผ๊ณ "์ ์ธ".
3)ํด๋์ค ์ด๋ฆ! ํ์ผ๋ช ๊ณผ ๋ฐ๋์ ์ผ์นํด์ผ ํ๋ค!
#public 1)static 2)void main 3) (String[] args)
1) Java ์ปดํ์ผ๋ฌ๊ฐ ๋ฐ์ดํธ ์ฝ๋๋ก ๋ณํํ ๋ ๋ฏธ๋ฆฌ ์ ์๋๋ ๋ฉ์๋ ํ๊ธฐ์ด๋ค.
2) ๋ฉ์๋์ ์๋ต๊ฐ์ ์ ์ํ๋ ๊ณณ. void: ์๋ต๊ฐ ์์์ ์ ์.
3) ๋ฉ์๋๊ฐ ์์๋ ๋ ๋๊ฒจ๋ฐ์ ๋ฐ์ดํฐ ๊ณต๊ฐ, ๋ฌธ์์ด ์ฌ๋ฌ๊ฐ ๋ฐ์ดํฐ ํ์ , ๊ทธ๊ฒ์ ์ด๋ฆ(์ฌ์ฉ์๊ฐ ์ ์ํ ๊ฐ.)
#System.out.print
: Java ์ถ๋ ฅ ์ฝ๋์ด๋ค. println์ ๊ฒฝ์ฐ, ln์ line์ ์๋ฏธํ๋ฉฐ ์ถ๋ ฅ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ผ ๋ ๋์ผํ ๋ผ์ธ์ ๋์ค์ง ์๊ณ ์๋์ผ๋ก ์ค๋ฐ๊ฟ์ ํด์ค๋ค.
# //
:์ ์ฌ๋์ฌ 2๊ฐ๋ ์ฃผ์์ฒ๋ฆฌ๋ฅผ ์๋ฏธํ๋ฉฐ ํด๋น ๋ด์ฉ์ ์ ์ฒด ์ฝ๋์ ์ด๋ค ์ํฅ๋ ๋ฏธ์น์ง ์๋๋ค. ๊ฐ๋ฐ์๊ฐ ํ์ํ ์ ๋ณด๋ฅผ ๋ช ์ํด์ผํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
2-1. ๋ณ์(๋ณํ๋ ๊ฒ๊ณผ ๋ณํ์ง ์๋ ๊ฒ)
Java ํ๋ก๊ทธ๋จ์์ ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฃจ๊ธฐ ์ํด์๋ ๊ทธ๊ฒ์ ๋ด์ "์ ์ฅ ๊ณต๊ฐ"์ด ํ์ํ๋ค! ๋ณ์๋ฅผ ์ ์ธํจ์ผ๋ก์จ ํด๋น ๊ณต๊ฐ์ด ๋ง๋ค์ด์ง๋ค! +๊ฐ๋ณ์ ์ธ ๊ฐ๋ค์ ๋ค๋ฃจ๊ธฐ ์ฌ์์ง
- ๋ณ์๋ฅผ ์ ์ธํ ๋ ์ ์ฅ ๊ณต๊ฐ์ ๋ด์ ๊ฐ์ ํ์ (ํํ)์ ๊ทธ๊ฒ์ ์ด๋ฆ์ ์ง์ ํด์ค์ผ ํ๋ค!
ex1) int num ex2) int num=0; ์ด ๋๊ฐ์ง ์์ ๋ชจ๋ ์ ์ํ์ผ๋ก ์ ์ธํ๋ฉฐ ๊ทธ๊ฒ์ ์ด๋ฆ์ num์ด๋ผ๊ณ ํด์ฃผ์๋ค.
๋ค๋ฅธ ์ ์ ๋๋ฒ์งธ ๊ฒฝ์ฐ์๋ ๋ณ์ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ๋ฅผ ํด์ฃผ์๋ค.
- java ํ๋ก๊ทธ๋จ์์ ์ ์ฅํ๋ ๋๋ถ๋ถ์ ๊ฐ๋ค์ ๋ณ์์ด๋ค. ๊ทธ๋ ์ง๋ง ๋ณํ์ง ์๋ ์ ์ฅ๊ณต๊ฐ์ธ "์์"์ ๊ฐ๋ ๋ ์๋ค.
์ด๋ ๊ฒ ๋ณํ์ง ์์ ๊ฐ๋ค์ ๋ฐ๋ก ์ ์ธํด์ฃผ๋ฉด ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ ์ฅ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์๋ค.
ex) final int num = 10; ์ด์ ๊ฐ์ด ๋ณ์์ ํ์ ์์ final์ ๋ถ์ด๋ฉด ๋๋ค.
2-2. ๋ณ์์ ์ข ๋ฅ(๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ)
๋ณ์์ ์ข ๋ฅ๋ ํฌ๊ฒ ๊ธฐ๋ณธํ ๋ณ์์ ์ฐธ์กฐํ ๋ณ์๋ก ๋๋๋ค.
- ๊ธฐ๋ณธํ ๋ณ์: boolean / char / byte, int(4byte), long(8byte) / float(4byte), double(8byte) ๊ฐ๊ฐ ๋ ผ๋ฆฌํ, ๋ฌธ์ํ, ์ ์ํ, ์ค์ํ ๋ฑ์ด ์๊ณ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ธ๋ฐ ์ฌ๋ฌ๊ฐ๊ฐ ์กด์ฌํ๋ ๊ฒ์ ๊ฐ์ ํํํ ์ ์๋ ์ ๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. ์ผ๋ง๋งํผ์ ๋ฒ์๋ฅผ ํํํ ์ ์๋์ง๊ฐ ๋ค๋ฅธ ์ ์ด๋ค.
** ๋ฌธ์ != ๋ฌธ์์ด
- ์ฐธ์กฐํ ๋ณ์: String(ํด๋์ค), Object, Array, List
* ์ฐธ์กฐํ ๋ณ์๋ ๊ฐ์ ๊ทธ ๊ณต๊ฐ์ ๋ฐ๋ก ์ ์ฅํ๋ ๊ฒ์ด ์๋๋ผ ๋ณ๋์ ์ ์ฅ ๊ณต๊ฐ์ ๊ฐ๊ณ ์๋ค. ๊ทธ๋์ ๋ณ์ ์ ์ธ์ ํด๋น ๋ณ์๋ ์ค์ ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ์ฃผ์๊ฐ์ ๊ฐ๋ฆฌํค๊ณ ์๋ค.
*๋ณ์์ ํฌ๊ธฐ ์์ฒด๊ฐ ๊ธฐ๋ณธํ๊ณผ ๋ค๋ฅด๊ฒ ๊ฐ๋ณ์ ์ด๊ณ ๋จ์ผ ๊ณต๊ฐ์ ๋ด์ ์ ์๋ ํฌ๊ธฐ๊ฐ ํฐ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
**๋ฉ๋ชจ๋ฆฌ ๊ด์ ?
*์์์ ๋งํ ๊ฒ์ ๋ง๋ถ์ด์๋ฉด ์ค์ ๊ฐ์ ์ ์ฅํ๋ ๊ธฐ๋ณธํ ๊ณผ ๋ค๋ฅด๊ฒ ์ฐธ์กฐํ์ ์ค์ ๊ฐ์ด ์๋ ์๋ณธ ๊ฐ์ "์ฃผ์"๋ฅผ ์ ์ฅํ๋ค. ์ด๊ฒ์ memory์์์ ๋ดค์ ๋ ์๋ณธ๊ฐ์ Heap(๋์ ) ์์ญ์ ์๊ณ ๊ทธ๊ฒ์ ๊ฐ๋ฆฌํค๋ ์ฃผ์๊ฐ์ Stack(์ ์ ) ์์ญ์ ์๋ค.
- ๋ํผ ํด๋์ค ๋ณ์(Wrapper Class): "๊ธฐ๋ณธํ ๋ณ์"๋ฅผ ํด๋์ค๋ก ํ๋ฒ ๋ํํ๋ ๋ณ์์ด๋ค.
ex) int num = 10;
Integer num = new Integer(num);
*์ด๊ฒ์ ๊ตณ์ด ์ฌ์ฉํ๋ ์ด์ ? ํด๋์ค๋ ๊ฐ์ฒด์งํฅ ์ธ์ด์ธ ์๋ฐ์ ํต์ฌ ๊ธฐ๋ฅ์ด๋ค. ๋ฐ๋ผ์ ๋ณ์๋ฅผ ํด๋์ค๋ก ๊ด๋ฆฌํ๋ฉด ๊ฐ์ฒด์งํฅ์ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
- ์์คํค์ฝ๋
์ปดํจํฐ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก 1,0 ๋๊ฐ์ง๋ฅผ ํตํด ๊ฐ์ ์ ์ฅํ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ซ์๊ฐ ์๋ ๋ฌธ์๋ ์ด๋ป๊ฒ ์ ์ฅํ ๊น?
๊ทธ๋์ ๋ฑ์ฅํ๊ฒ ๋ ๊ฒ์ด ์์คํค์ฝ๋์ด๋ค. ๋ฌธ์์ ์ซ์๋ฅผ ๋งค์นญํด์ ์๋ฅผ ๋ค๋ฉด a - 65, c-67 ์ด์ ๊ฐ์ด ์ปดํจํฐ์ ์ ์ฅํ ์ ์๋ค.
#๋ฌธ์์ ๋ฌธ์์ด์ ์ฐจ์ด?
๋ฌธ์๋ ๋ง ๊ทธ๋๋ก ๋ฌธ์ ํ๋๋ฅผ ์๋ฏธํ๋ค a, b, c ์ด์ ๊ฐ์ ๋จ์ผ ๋ฌธ์! char bee = 'a'; ์ด์ ๊ฐ์ด ๊ฐ์ ์ ์ฅํ๋ค.(\n ๋ ๊ฐ ์์ ์ ์ธํ๋ ์๋ฃํ์ด ๊ธฐ๋ณธํ์ด๋ผ๋ฉด 4byte, 8byte๋ฑ์ผ๋ก ๋ช ํํ๊ฒ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ ๋น๋จ)
String์ ๋ฌธ์๊ฐ ํ๊ฐ ์ด์์ธ "๋ฌธ์์ด"์ ์ ์ฅํ ์ ์๋ค. String bee = "Dangerous speices"; ์ด์ ๊ฐ์ด ๋ง์ด๋ค.
*์ด ๋๊ฐ์ง๋ฅผ ํท๊ฐ๋ฆฌ๋ฉด ์๋นํ ๊ณค๋ํ๋ค. (๋๋ฌธ์ ์กด์ฌ.)
3-1. ์ ์ถ๋ ฅ
- ์ ๋ ฅ: ์ฝ๋ ๋งจ ์ ๋ถ๋ถ ์์ import java.util.Scanner; ์ ์ธ ํ
Scanner sc = new Scanner(System.in);
String input = sc.next(); // sc(Scanner)์ .next();
- ์ถ๋ ฅ:
System.out.println();
์ด์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋๋ค.
4-1 ํ๋ณํ(Casting)
- ํ๋ก๊ทธ๋๋ฐ ๊ณผ์ ์ค ๋ฌธ์์ด๋ก ์ ๋ ฅํ ๋ณ์๋ฅผ ์ ์ํ์ผ๋ก ๋ณํํด์ ๊ณ์ฐํ๊ณ ์ถ์ ๊ฒฝ์ฐ ํด๋น ๋ณ์๋ฅผ ๋ค๋ฅธ ํ์ผ๋ก ๋ณํ์ด ํ์ํ๋ค. ์ด๊ฒ์ ์บ์คํ ์ ํตํด ํด๊ฒฐํ ์ ์์ผ๋ฉฐ ๋ณดํต ์ ์ - ์ค์ - ๋ฌธ์ ์ฌ์ด์์ ์ผ์ด๋๋ค.
ex) ์ค์ํ์ ์ ์ํ์ผ๋ก ๋ณํํ๊ธฐ
//#1
double douNum = 3.2;
System.out.println((int)douNum); //๋จ์ํ๊ฒ ์บ์คํ
๋ง ์งํ.
//#2
float floNum = 3.5f;
int num;
num = (int)floNum; // num์ floNum์ ๊ฐ์ ์ ์ฅํ๊ณ ์ถ์๋ฐ ์ด ๊ฐ์ ์ค์์ด๋ค. ์ด๊ฒ์ int๋ก ํ๋ณํ ํ์๊ณ
System.out.println(num); //num์ ์ถ๋ ฅํ์๋ค.
//๊ทธ๋ ์ง๋ง ์ด๋ ๊ฒ ๋๋ฉด ์ด์ฉ ์ ์๋ ๊ฐ์ ์์ค์ด ๋ฐ์ํ๋ค.
์ด์ ๊ฐ์ด ๊ฐ๋จํ๊ฒ ํ๋ณํ์ด ๊ฐ๋ฅํ๋ค.
- ํ๋ณํ์๋ ์์ ๊ฐ์ด ๋ช ์์ ์ธ ํ๋ณํ๋ ์์ง๋ง ์๋์ผ๋ก ํ๋ณํ์ด ๋๋ ๊ฒฝ์ฐ๋ ์๋ค.
์๋ฅผ ๋ค๋ฉด ๋ ์์ ๋ฒ์์ธ byte ํ์ ๋ณ์๋ฅผ intํ์ผ๋ก ์บ์คํ ํ๋ฉด ๋น์ฐํ intํ์ด ๋ ํฐ ๊ฐ์ ๋ด์ ์ ์๊ธฐ ๋๋ฌธ์
๋ฌธ์ ์์ด ์๋์ผ๋ก ํ๋ณํ์ด ์ด๋ฃจ์ด์ง๋ค!
์์ฑ ํ๊ฐ: ๋๋ฌด ์ ์จ์ผ๊ฒ ๋ค๋ ์์ฌ์ด ์์ ๊ฐ๋ฐ๋ธ๋ก๊ทธ๋ฅผ ๋ฏธ๋ฃจ๊ณ ๋ฏธ๋ค๋๋ฐ ์ผ๋จ ๊พธ์คํ ์จ๋ด์ผ๊ฒ ๋ค!
์ฒ์์ผ๋ก ์ฝ๋๋ธ๋ญ๋ ์จ๋ณด๊ณ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ ์ ๋ฆฌํ๋ฉด์ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ๋ ํจ์ฌ ๋ง์ด ์ ๋ฆฌ๋์๋ค! ํ์ดํ !
'JavaStudy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL JAVA #3-1 (0) | 2023.11.30 |
---|---|
TIL JAVA #2-4 (1) | 2023.10.20 |
TIL JAVA #2-3 (0) | 2023.10.19 |
TIL JAVA #2-2 (3) | 2023.10.19 |
TIL JAVA #2-1 (0) | 2023.10.18 |