1) ํจํค์ง์ API ๋ฌธ์
1-1) ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๊ฐ๋ฐ์๊ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํจํค์ง ํน์ ๋ชจ๋์ ์์ถํ ํ์ผ
1-2) ํจํค์ง์ ๋ชจ๋
- ํจํค์ง : ์ํธ ๊ด๋ จ ์๋ ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ํ ๊ณณ์ ๋ฌถ์ด ๋์ ๊ฒ
- ๋ชจ๋ : ๋ฐ์ ํ ๊ด๊ณ๊ฐ ์๋ ํจํค์ง์ ๋ฆฌ์์ค๋ฅผ ๋ฌถ์ด ๋์ ๊ฒ, JDK๋ฅผ ์ค์นํ๋ฉด jmods ํด๋์ jmod ํ์ผ์ ์ ๊ณตํ๋๋ฐ jmod ํ์ผ์ด ๋ชจ๋ ํ์ผ
1-3) ์๋ฐ์ ์ฃผ์ ํจํค์ง ๋ฐ ๋ชจ๋
1-4) API ๋ฌธ์
- ์๋ฐ๋ ์ด๋ฐ ํจํค์ง๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ ์ ์๋๋ก API ํํ๋ก ์ ๊ณตํ๋ค
- ์ฌ์ฉ์๋ API๋ก๋ถํฐ ํ์ํ ํจํค์ง๋ฅผ ์ํฌํธํ๋ฉด ๋ชจ๋ํฐ์ ํค๋ณด๋๋ฅผ ์ฝ๊ฒ ์กฐ์ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋ค
- JDK์ ํฌํจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋งค์ฐ ๋ฐฉ๋ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ๋ชจ๋ ๊ธฐ์ตํ ์ ์์ผ๋ฏ๋ก ํจํค์ง๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ๋ฐ์๋ API ๋ฌธ์๋ฅผ ์์ฃผ ์ฐธ์กฐํด์ผํ๋ค
- ๊ต์๋์ด ๊ณ์ ๋ชจ๋ฅด๋๊ฑฐ ์์ผ๋ฉด java.api ๋ณด๋ผ๊ณ ๊ฐ์กฐ๋ฅผ ํ์ ๋ค. ๋๋ถ๋ถ ์์ด๋ผ ํด์ํ๊ธฐ ํ๋ค์ด์ ๊ตฌ๊ธ๋ง์ด๋ chat gpt๋ฅผ ๋ง์ด ์ฐพ์๋ณด๋๋ฐ ์ธ์ ๊ฐ ์์ด ์ค๋ ฅ๊ณผ ์ฝ๋ฉ ์ค๋ ฅ์ ํค์์ api๋ง๋ค ์ด์ฉํ์ฌ ๋ง๋ค์ด๋ ๋ณด๊ณ ์ถ๋ค!!
2) java.lang ํจํค์ง
2-1) ํ์ ํจํค์ง
- java.lang ํจํค์ง๋ ์๋ฐ ํ๋ก๊ทธ๋จ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ๋ณด๊ด
- import ๋ฌธ ์์ด ์ฌ์ฉ
2-2) Object ํด๋์ค
- ๋ชจ๋ ํด๋์ค์ ์กฐ์
- Object ํด๋์ค๊ฐ ์ ๊ณตํ๋ ์ฃผ์ ๋ฉ์๋
2-3) Class ํด๋์ค
- ์คํ ์ค์ธ ์๋ฐ ํ๋ก๊ทธ๋จ ๋ด๋ถ์ ํฌํจ๋ ํด๋์ค์ ์ธํฐํ์ด์ค ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ค๊ณ getName(), getSimpleName() ๋ฑ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณต
- Class ํด๋์ค๋ ์์ฑ์๊ฐ ์๊ณ ์ด๋ค ๊ฐ์ฒด๋ผ๋ ์์ฑํ๋ฉด JVM์ด ๋์ํ๋ Class ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์์ฑ
- ์คํ ๋์ค ๊ฐ์ฒด ์ ๋ณด๋ฅผ ์ป์ผ๋ ค๋ฉด getClass()์ ๊ฒฐ๊ณผ์ธ Class ๊ฐ์ฒด๋ฅผ ์ฌ์ฉ
- ex) ์ฃผ์ด์ง obj๊ฐ์ฒด์์ Class ๊ฐ์ฒด๋ฅผ ์ป์ผ๋ ค๋ฉด
2-4) Math ํด๋์ค
- ๋ชจ๋ ๋ฉ์๋๊ฐ static์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์๊ณ ๋ฉ์๋ ํธ์ถ
- Math ํด๋์ค๊ฐ ์ ๊ณตํ๋ ์ฃผ์ double ํ์ ์ ๋ฉ์๋
public class MathDemo {
public static void main(String[] args) {
System.out.println("Math.pow(2,8):" + Math.pow(2, 8));
System.out.println("Math.random():" + Math.random());
System.out.println("Math.sin(Math.PI):" + Math.sin(Math.PI));
System.out.println("Math.min(10,20):" + Math.min(10, 20));
}
}
๋ต์
Math.pow(2,8):256.0
Math.random():0.5957544835893684
Math.sin(Math.PI):1.2246467991473532E-16
Math.min(10,20):10
2-5) System ํด๋์ค
- ํ์ค ์ ์ถ๋ ฅ์ ๋น๋กฏํ ์คํ ์์คํ ๊ณผ ๊ด๋ จ๋ ํ๋์ ๋ฉ์๋๋ฅผ static์ผ๋ก ์ ๊ณต
- System.out.println()๋ System ํด๋์ค๊ฐ ์ ๊ณตํ๋ ๋ฉ์๋
- System ํด๋์ค์ ์ธ๊ฐ์ง ํ๋
- ์๋ฐ์์ ์ด์์ฒด์ ๋ก๋ถํฐ ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ JVM์ด ๊ด๋ฆฌ
- JVM์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๊ฑฐ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ฅผ ์ฌ์ฉํด ๊ฐ๋น์ง๋ฅผ ์๊ฑฐ
- ๊ฐ๋น์ง๋ฅผ ์๊ฑฐํ๋ ์์๋ ๊ฐ์ฒด์ ์์ฑ ์์์๋ ๋ฌด๊ด
- ํ๋ก๊ทธ๋จ์์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ฅผ ์ง์ ํธ์ถ ๋ถ๊ฐ, ๋์ ์ System.gc()๋ก JVM์ ๊ฐ๋ฅํ๋ฉด ๋นจ๋ฆฌ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ฅผ ์คํํ๋๋ก ์์ฒญ ๊ฐ๋ฅ
class Garbage {
public int no;
public Garbage(int no) {
this.no = no;
System.out.printf("Garbage(%d)์์ฑ\n", no);
}
protected void finalize() {
System.out.printf("Garbage(%d)์๊ฑฐ\n", no);
}
}
public class GarbageDemo {
public static void main(String[] args) {
for (int i = 0; i < 3; i++)
new Garbage(i);
}
}
๋ต์
Garbage(0)์์ฑ
Garbage(1)์์ฑ
Garbage(2)์์ฑ
๊ฐ๋น์ง์ ์์ฑ ์์์ ์๊ฑฐ ์์๋ ๋ฌด๊ดํ๋ค!!
2-6) ํฌ์ฅ ํด๋์ค
- ๋๋ถ๋ถ์ ๊ธฐ๋ณธ ํจํค์ง๊ฐ ์ ๊ณตํ๋ ํด๋์ค์ ๋ฉ์๋๋ ์ฐธ์กฐ ํ์ ์ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์ด ํ์ ์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด ์งํฅ ์ธ์ด์ ํน์ง์ ์ด์ฉ ๋ถ๊ฐ
- ์๋ฐ๋ ๊ธฐ์ด ํ์ ์ ํฌ์ฅํด ํด๋์คํ ํ ํฌ์ฅ ํด๋์ค(wrapper class)๋ฅผ ์ ๊ณตํด์ ๊ธฐ์ด ํ์ ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ ํจํค์ง๋ฅผ ํ์ฉํ๋๋ก ํจ
- ๋ชจ๋ ๊ธฐ์ด ํ์ ์ ๋์ํ๋ ํฌ์ฅ ํด๋์ค๊ฐ ์์ผ๋ฉฐ, int์ char ํ์ ์ ๋์ํ๋ ํฌ์ฅ ํด๋์ค๋ ๊ฐ๊ฐ Integer์ Character์ด๋ฉฐ, ๋๋จธ์ง ํฌ์ฅ ํด๋์ค์ ์ด๋ฆ์ ๊ธฐ์ด ํ์ ์ ์ฒซ ์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ๋ฐ๊พผ ๊ฒ์ด๋ค
- Integer ํด๋์ค๊ฐ ์ ๊ณตํ๋ ์ฃผ์ ๋ฉ์๋
- ๊ธฐ์ด ํ์ ๋ฐ์ดํฐ๋ฅผ ํฌ์ฅํด ๊ฐ์ฒดํํ๋ ๊ฒ์ ๋ฐ์ฑ(boxing), ๋ฐ๋ ๊ณผ์ ์ ์ธ๋ฐ์ฑ(unboxing)
- ๋ฐ์ฑ์ ์ํํ๋ ค๋ฉด ํฌ์ฅ ํด๋์ค์ ์์ฑ์๋ valueOf()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค
Interger bi = new Integer(10); // ๋ฐ์ฑ
Integer bi = Integer.valueOf(10) // ๋ฐ์ฑ
public class WrapperDemo {
public static void main(String[] args) {
Integer bi1 = new Integer(10); // Integer ํ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค
int i1 = bi1.intValue(); // Integer ํ์ ์ int ํ์ ์ผ๋ก ๋ณํํ๋ค
double d = bi1.doubleValue(); // Integer ํ์ ์ double ํ์ ์ผ๋ก ๋ณํํ๋ค
Integer bi2 = 20; // ์๋ ๋ฐ์ฑ์ด๋ค
int i2 = bi2 + 20; // ์๋ ์ธ๋ฐ์ฑ์ด๋ค
String s1 = Double.toString(3.14); // double ํ์ ๋ฐ์ดํฐ๋ฅผ String ํ์ ์ผ๋ก ๋ณํํ๋ค
Float pi = Float.parseFloat("3.14"); // String ํ์ ๋ฐ์ดํฐ๋ฅผ Float ํ์ ์ผ๋ก ๋ณํํ๋ค
Integer bi3 = Integer.valueOf("11", 16); // 16์ง์ ์ซ์ ๋ฌธ์์ด์ 10์ง์ Integer ํ์ ์ผ๋ก ๋ณํํ๋ค
System.out.println(bi3);
}
}
๋ต์
17