๐Ÿ“Œ 1๋‹จ๊ณ„ ๋ณธ๋ฌธ: ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์ด๋ž€?


1. ๊ธฐ๋ณธํ˜•(Primitive Type)์ด๋ž€?


์˜ˆ์‹œ 1: ์ˆซ์ž ์ €์žฅ

int age = 10;

๐Ÿ”น ๋น„์œ : ์ƒ์ž์— ์ˆซ์ž ์ข…์ด ๋„ฃ๊ธฐ


์˜ˆ์‹œ 2: ๋ฌธ์ž์™€ ์ฐธ/๊ฑฐ์ง“

char grade = 'A';
boolean isActive = true;

๐Ÿ”น ๋น„์œ : ์ƒ์ž์— ๊ธ€์ž ์ข…์ด ๋„ฃ๊ธฐ


์ •๋ฆฌ: ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜์˜ ํŠน์ง•


2. ์ฐธ์กฐํ˜•(Reference Type)์ด๋ž€?


์˜ˆ์‹œ 1: ๋ฌธ์ž์—ด(String) ์ €์žฅ

String name = "ํ™๊ธธ๋™";

๐Ÿ”น ๋น„์œ : ์ฃผ์†Œ๊ฐ€ ์ ํžŒ ์ข…์ด


์˜ˆ์‹œ 2: ๋ฐฐ์—ด(Array) ์ €์žฅ

int[] scores = {90, 85, 95};

๐Ÿ”น ๋น„์œ : ์ฃผ์†Œ๊ฐ€ ์ ํžŒ ์ง€๋„


์ •๋ฆฌ: ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜์˜ ํŠน์ง•


3. ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์˜ ์ฐจ์ด์  ์š”์•ฝ

๊ตฌ๋ถ„ ๊ธฐ๋ณธํ˜•(Primitive Type) ์ฐธ์กฐํ˜•(Reference Type)
์ €์žฅ๋˜๋Š” ๊ฐ’ ๊ฐ’ ์ž์ฒด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ (์ง€๋„)
์ €์žฅ ์œ„์น˜ Stack ๋ฉ”๋ชจ๋ฆฌ Heap ๋ฉ”๋ชจ๋ฆฌ
์˜ˆ์‹œ int, double, char, boolean String, ๋ฐฐ์—ด, ํด๋ž˜์Šค
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฉ”์„œ๋“œ ์ข…๋ฃŒ ์‹œ ์ž๋™ ์‚ญ์ œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ(GC)๊ฐ€ ์ •๋ฆฌ

4. ํ•œ๋ˆˆ์— ๋ณด๋Š” ๋น„์œ 


5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


๐Ÿ“ ํ•œ๋ˆˆ์— ๋ณด๋Š” ์š”์•ฝ



๐Ÿ”„ 2๋‹จ๊ณ„ ๋ณธ๋ฌธ: ํ˜•๋ณ€ํ™˜์ด๋ž€? (ํƒ€์ž… ๋ณ€ํ™˜)


1. ํ˜•๋ณ€ํ™˜(Type Casting)์ด๋ž€?


2. ๊ธฐ๋ณธํ˜• โ†” ๊ธฐ๋ณธํ˜• ํ˜•๋ณ€ํ™˜

๊ธฐ๋ณธํ˜•๋ผ๋ฆฌ๋Š” ์„œ๋กœ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


1) ์ž๋™ ํ˜•๋ณ€ํ™˜ (๋ฌต์‹œ์  ๋ณ€ํ™˜)

int num = 10;
double d = num;  // int โ†’ double ์ž๋™ ๋ณ€ํ™˜

๐Ÿ”น ๋น„์œ : ์ž‘์€ ์ƒ์ž โ†’ ํฐ ์ƒ์ž


2) ๊ฐ•์ œ ํ˜•๋ณ€ํ™˜ (๋ช…์‹œ์  ๋ณ€ํ™˜)

double d = 9.99;
int num = (int) d;  // double โ†’ int ๊ฐ•์ œ ๋ณ€ํ™˜ (์†Œ์ˆ˜์  ์†์‹ค)

๐Ÿ”น ๋น„์œ : ํฐ ์ƒ์ž โ†’ ์ž‘์€ ์ƒ์ž


์ž๋™ ํ˜•๋ณ€ํ™˜๊ณผ ๊ฐ•์ œ ํ˜•๋ณ€ํ™˜ ์š”์•ฝ

ํ˜•๋ณ€ํ™˜ ์ข…๋ฅ˜ ์„ค๋ช… ์˜ˆ์‹œ
์ž๋™ ํ˜•๋ณ€ํ™˜ ์ž‘์€ ํƒ€์ž… โ†’ ํฐ ํƒ€์ž… int โ†’ double, char โ†’ int
๊ฐ•์ œ ํ˜•๋ณ€ํ™˜ ํฐ ํƒ€์ž… โ†’ ์ž‘์€ ํƒ€์ž… double โ†’ int, long โ†’ int
๋ฐ์ดํ„ฐ ์†์‹ค ์—ฌ๋ถ€ ์—†์Œ ์žˆ์„ ์ˆ˜ ์žˆ์Œ (์†Œ์ˆ˜์  ๋“ฑ)
์‚ฌ์šฉ๋ฒ• ์ž๋™ ๋ณ€ํ™˜ (ํƒ€์ž…) ๊ฐ’ ์œผ๋กœ ๋ณ€ํ™˜

3. ๊ธฐ๋ณธํ˜• โ†” ์ฐธ์กฐํ˜• ํ˜•๋ณ€ํ™˜


Wrapper ํด๋ž˜์Šค๋ฅผ ํ†ตํ•œ ํ˜•๋ณ€ํ™˜

int num = 50;
Integer obj = num;  // Auto-boxing (๊ธฐ๋ณธํ˜• โ†’ ์ฐธ์กฐํ˜•)
int newNum = obj;   // Auto-unboxing (์ฐธ์กฐํ˜• โ†’ ๊ธฐ๋ณธํ˜•)

๐Ÿ”น ๋น„์œ : ํฌ์žฅ๊ณผ ๊ฐœ๋ด‰


Wrapper ํด๋ž˜์Šค์˜ ์žฅ์ 


4. String(๋ฌธ์ž์—ด) โ†” ๊ธฐ๋ณธํ˜• ํ˜•๋ณ€ํ™˜

1) ๊ธฐ๋ณธํ˜• โ†’ ๋ฌธ์ž์—ด

int num = 100;
String str = String.valueOf(num);  // "100"
String str2 = num + "";  // "100"

2) ๋ฌธ์ž์—ด โ†’ ๊ธฐ๋ณธํ˜•

String str = "100";
int num = Integer.parseInt(str);  // 100

5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


๐Ÿ“ ํ•œ๋ˆˆ์— ๋ณด๋Š” ์š”์•ฝ


์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด ๋…ธ์…˜(Notion)์—์„œ ๊ฐ€๋…์„ฑ ๋†’๊ณ  ๊ตฌ์กฐํ™”๋œ ๋ฌธ์„œ๋กœ ์ ํ•ฉํ•˜๊ฒŒ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

ํ˜น์‹œ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!


๐Ÿ”ข 3๋‹จ๊ณ„ ๋ณธ๋ฌธ: ์‹ค์ˆ˜ํ˜• ํ˜•๋ณ€ํ™˜๊ณผ ์˜ค์ฐจ ๋ฌธ์ œ


1. ์‹ค์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋ž€?

float f = 3.14f;
double d = 3.141592653589793;

2. float โ†” double ํ˜•๋ณ€ํ™˜


์ž๋™ ํ˜•๋ณ€ํ™˜ (float โ†’ double)

float f = 3.14f;
double d = f;  // float โ†’ double ์ž๋™ ๋ณ€ํ™˜
System.out.println(d);  // ์ถœ๋ ฅ: 3.14

๊ฐ•์ œ ํ˜•๋ณ€ํ™˜ (double โ†’ float)

double d = 3.141592653589793;
float f = (float) d;  // double โ†’ float ๊ฐ•์ œ ๋ณ€ํ™˜
System.out.println(f);  // ์ถœ๋ ฅ: 3.1415927

๐Ÿ”น ๋น„์œ : ํฐ ์ปต โ†’ ์ž‘์€ ์ปต


3. ์‹ค์ˆ˜ํ˜•์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค์ฐจ ๋ฌธ์ œ (๋ถ€๋™์†Œ์ˆ˜์  ์˜ค์ฐจ)


์˜ˆ์‹œ: ๋ถ€๋™์†Œ์ˆ˜์  ์˜ค์ฐจ ๋ฌธ์ œ

double a = 0.1;
double b = 0.2;
System.out.println(a + b);          // ์ถœ๋ ฅ: 0.30000000000000004
System.out.println(a + b == 0.3);   // ์ถœ๋ ฅ: false

๐Ÿ”น ๋น„์œ : ๋™์ „ ๋ฐ˜์ชฝ์„ ์ •ํ™•ํžˆ ๋‚˜๋ˆ„๊ธฐ ์–ด๋ ต๋‹ค!


4. ๋ถ€๋™์†Œ์ˆ˜์  ์˜ค์ฐจ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1) Math.abs()๋ฅผ ์‚ฌ์šฉํ•œ ๋น„๊ต

๐Ÿ”น ๋น„์œ : ๋™์ „ ๋‘ ๊ฐœ์˜ ๋ฌด๊ฒŒ ์ฐจ์ด๊ฐ€ ์•„์ฃผ ์ž‘์œผ๋ฉด ๊ฐ™์€ ๋ฌด๊ฒŒ๋กœ ๋ณด๊ธฐ


2) BigDecimal ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

import java.math.BigDecimal;

BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal result = a.add(b);

System.out.println(result);  // ์ถœ๋ ฅ: 0.3

๐Ÿ”น ๋น„์œ : ์ •๋ฐ€ ์ €์šธ ์‚ฌ์šฉํ•˜๊ธฐ


5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


๐Ÿ“ ํ•œ๋ˆˆ์— ๋ณด๋Š” ์š”์•ฝ



๐Ÿ“‚ 4๋‹จ๊ณ„ ๋ณธ๋ฌธ: Stack๊ณผ Heap์˜ ์ฐจ์ด์ 


1. Stack(์Šคํƒ)๊ณผ Heap(ํž™)์ด๋ž€?


1) Stack(์Šคํƒ)์ด๋ž€?


์˜ˆ์‹œ: Stack์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ

int num = 10;
double pi = 3.14;

๐Ÿ”น ๋น„์œ : ์ ‘์‹œ ์Œ“๊ธฐ


Stack์˜ ํŠน์ง• ์š”์•ฝ


2) Heap(ํž™)์ด๋ž€?


์˜ˆ์‹œ: Heap์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ

String name = "ํ™๊ธธ๋™";
int[] scores = {90, 85, 95};

๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ:

๐Ÿ”น ๋น„์œ : ์ง€๋„์™€ ์ง‘


Heap์˜ ํŠน์ง• ์š”์•ฝ


3. Stack๊ณผ Heap์˜ ์ฐจ์ด์  ์š”์•ฝ

ํ•ญ๋ชฉ Stack(์Šคํƒ) Heap(ํž™)
์ €์žฅ ์œ„์น˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ์ƒ์„ฑ new๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด ์ €์žฅ
์ €์žฅ ๋ฐ์ดํ„ฐ ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ •๋ณด ๊ฐ์ฒด, ๋ฐฐ์—ด
๊ด€๋ฆฌ ๋ฐฉ์‹ ์ž๋™ ์‚ญ์ œ (๋ฉ”์„œ๋“œ ์ข…๋ฃŒ ์‹œ) Garbage Collector(GC)๊ฐ€ ์ •๋ฆฌ
์†๋„ ๋งค์šฐ ๋น ๋ฆ„ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆผ
์—๋Ÿฌ ๋ฐœ์ƒ StackOverflowError (์žฌ๊ท€ ๋ฌดํ•œ ํ˜ธ์ถœ) OutOfMemoryError (๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ)

4. ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ(StackOverflowError)๋ž€?

public class StackOverflowExample {
    public static void recursive() {
        recursive();  // ์ž์‹ ์„ ๊ณ„์† ํ˜ธ์ถœ (๋ฌดํ•œ ๋ฃจํ”„)
    }
    public static void main(String[] args) {
        recursive();
    }
}

๐Ÿ”น ๋น„์œ : ์ ‘์‹œ ์Œ“๊ธฐ ๋ฌดํ•œ ๋ฐ˜๋ณต


5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


๐Ÿ“ ํ•œ๋ˆˆ์— ๋ณด๋Š” ์š”์•ฝ


๐Ÿ“ 5๋‹จ๊ณ„ ๋ณธ๋ฌธ: String(๋ฌธ์ž์—ด)์ด๋ž€?


1. String(๋ฌธ์ž์—ด)์ด๋ž€?


์˜ˆ์‹œ: String ์„ ์–ธ๊ณผ ์‚ฌ์šฉ

String name = "ํ™๊ธธ๋™";
String greeting = "์•ˆ๋…•, " + name + "!";
System.out.println(greeting);  // ์ถœ๋ ฅ: ์•ˆ๋…•, ํ™๊ธธ๋™!

String์˜ ํŠน์ง• ์š”์•ฝ


2. String์˜ ๋ถˆ๋ณ€(Immutable) ํŠน์ง•


์˜ˆ์‹œ: String ๋ถˆ๋ณ€์˜ ํŠน์ง•

String str1 = "Hello";
String str2 = str1;
str1 = str1 + " World";

System.out.println(str1);  // ์ถœ๋ ฅ: Hello World
System.out.println(str2);  // ์ถœ๋ ฅ: Hello

๐Ÿ”น ๋น„์œ : ๋ณต์‚ฌํ•œ ์ง€๋„


3. String ๋ณ€ํ™˜ ๋ฐฉ๋ฒ•

1) ๊ธฐ๋ณธํ˜• โ†’ String(๋ฌธ์ž์—ด) ๋ณ€ํ™˜

int num = 100;
String str1 = String.valueOf(num);  // "100"
String str2 = num + "";  // "100"

๐Ÿ”น ๋น„์œ : ์ด๋ฆ„ํ‘œ ๋ถ™์ด๊ธฐ


2) String(๋ฌธ์ž์—ด) โ†’ ๊ธฐ๋ณธํ˜• ๋ณ€ํ™˜

String str = "100";
int num = Integer.parseInt(str);  // 10

๐Ÿ”น ๋น„์œ : ์ด๋ฆ„ํ‘œ ๋–ผ๊ธฐ


4. StringBuffer์™€ StringBuilder


์˜ˆ์‹œ: StringBuffer ์‚ฌ์šฉ๋ฒ•

StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
System.out.println(sb.toString());  // ์ถœ๋ ฅ: Hello World

๐Ÿ”น ๋น„์œ : ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„ํ‘œ


String vs StringBuffer vs StringBuilder

ํŠน์ง• String StringBuffer StringBuilder
๋ณ€๊ฒฝ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๋ถˆ๋ณ€ (Immutable) ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ (๊ฐ€๋ณ€) ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ (๊ฐ€๋ณ€)
๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์ƒˆ ๊ฐ์ฒด ์ƒ์„ฑ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์—์„œ ๋‚ด์šฉ ๋ณ€๊ฒฝ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์—์„œ ๋‚ด์šฉ ๋ณ€๊ฒฝ
์†๋„ ๋А๋ฆผ (์ƒˆ ๊ฐ์ฒด ์ƒ์„ฑ) ๋น ๋ฆ„ ๊ฐ€์žฅ ๋น ๋ฆ„
์“ฐ๋ ˆ๋“œ ์•ˆ์ „์„ฑ ์“ฐ๋ ˆ๋“œ ์•ˆ์ „ํ•˜์ง€ ์•Š์Œ ์“ฐ๋ ˆ๋“œ ์•ˆ์ „ ์“ฐ๋ ˆ๋“œ ์•ˆ์ „ํ•˜์ง€ ์•Š์Œ
์‚ฌ์šฉ ์˜ˆ์‹œ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ž์—ด ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ ๋‹จ์ผ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ

5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ



๐Ÿ“ฆ 6๋‹จ๊ณ„ ๋ณธ๋ฌธ: Wrapper ํด๋ž˜์Šค์™€ Auto-boxing


1. Wrapper ํด๋ž˜์Šค๋ž€?

| ๊ธฐ๋ณธํ˜•(Primitive Type) | Wrapper ํด๋ž˜์Šค | | โ€” | โ€” | | int | Integer | | double | Double | | char | Character | | boolean | Boolean | | byte | Byte | | short | Short | | long | Long | | float | Float |


์˜ˆ์‹œ: ๊ธฐ๋ณธํ˜• vs Wrapper ํด๋ž˜์Šค

int num = 10;               // ๊ธฐ๋ณธํ˜•
Integer obj = new Integer(10);  // Wrapper ํด๋ž˜์Šค

๐Ÿ”น ๋น„์œ : ์ข…์ด์™€ ์ƒ์ž


Wrapper ํด๋ž˜์Šค์˜ ํŠน์ง• ์š”์•ฝ


2. Auto-boxing๊ณผ Auto-unboxing


Auto-boxing ์˜ˆ์‹œ

int num = 100;
Integer obj = num;  // Auto-boxing

๐Ÿ”น ๋น„์œ : ์ƒ์ž์— ๋‹ด๊ธฐ


Auto-unboxing ์˜ˆ์‹œ

Integer obj = 200;
int num = obj;  // Auto-unboxing

๐Ÿ”น ๋น„์œ : ์ƒ์ž์—์„œ ๊บผ๋‚ด๊ธฐ


Auto-boxing๊ณผ Auto-unboxing์˜ ์žฅ์ 


Auto-boxing๊ณผ Auto-unboxing ์ฃผ์˜์ 


.equals() ๋ฉ”์„œ๋“œ๋กœ ๋น„๊ตํ•˜๊ธฐ

Integer a = 1000;
Integer b = 1000;
System.out.println(a.equals(b));  // true

๐Ÿ”น ๋น„์œ : ์ƒ์ž ์•ˆ์˜ ๋‚ด์šฉ๋ฌผ ๋น„๊ตํ•˜๊ธฐ


3. Wrapper ํด๋ž˜์Šค์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช… ์˜ˆ์‹œ
parseXXX() ๋ฌธ์ž์—ด โ†’ ๊ธฐ๋ณธํ˜• ๋ณ€ํ™˜ int num = Integer.parseInt("100");
valueOf() ๋ฌธ์ž์—ด โ†’ Wrapper ํด๋ž˜์Šค ๋ณ€ํ™˜ Integer obj = Integer.valueOf("100");
toString() Wrapper ํด๋ž˜์Šค โ†’ ๋ฌธ์ž์—ด ๋ณ€ํ™˜ String str = obj.toString();
compareTo() ๊ฐ’ ๋น„๊ต (์–‘์ˆ˜/0/์Œ์ˆ˜ ๋ฐ˜ํ™˜) int result = obj1.compareTo(obj2);
equals() ๊ฐ’ ์ž์ฒด๋ฅผ ๋น„๊ต boolean isEqual = obj1.equals(obj2);

4. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


๐Ÿ“ ํ•œ๋ˆˆ์— ๋ณด๋Š” ์š”์•ฝ



๐ŸŽ“ 7๋‹จ๊ณ„ ๋ณธ๋ฌธ: ํ˜•๋ณ€ํ™˜ ์‹ฌํ™” ๊ฐœ๋… ๋ฐ ๋ฉด์ ‘ ๋Œ€๋น„


1. ํ˜•๋ณ€ํ™˜(Type Casting)์ด ํ•„์š”ํ•œ ์ด์œ 


ํ˜•๋ณ€ํ™˜์˜ ํ•„์š”์„ฑ ์š”์•ฝ


2. ํ˜•๋ณ€ํ™˜์˜ ์ข…๋ฅ˜ ์š”์•ฝ


3. ํƒ€์ž… ๋ณ€ํ™˜ ์šฐ์„ ์ˆœ์œ„ (ํ˜•๋ณ€ํ™˜ ๊ทœ์น™)

byte โ†’ short โ†’ int โ†’ long โ†’ float โ†’ double

์˜ˆ์‹œ: ํ˜•๋ณ€ํ™˜ ์šฐ์„ ์ˆœ์œ„

int a = 10;
double b = 3.14;
double result = a + b;  // int โ†’ double ์ž๋™ ๋ณ€ํ™˜

๐Ÿ”น ๋น„์œ : ํฐ ๋ฌผํ†ต์— ์ž‘์€ ๋ฌผ์ปต์˜ ๋ฌผ์„ ๋ถ“๊ธฐ


๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜ ์˜ˆ์‹œ (ํฐ ํƒ€์ž… โ†’ ์ž‘์€ ํƒ€์ž…)

double pi = 3.14;
int num = (int) pi;  // double โ†’ int ๊ฐ•์ œ ๋ณ€ํ™˜ (์†Œ์ˆ˜์  ์†์‹ค)
System.out.println(num);  // ์ถœ๋ ฅ: 3

๐Ÿ”น ๋น„์œ : ํฐ ๋ฌผํ†ต์˜ ๋ฌผ์„ ์ž‘์€ ๋ฌผ์ปต์— ์˜ฎ๊ธฐ๊ธฐ


4. instanceof ์—ฐ์‚ฐ์ž (ํƒ€์ž… ํ™•์ธ)


์˜ˆ์‹œ: instanceof ์‚ฌ์šฉ๋ฒ•

Object obj = "Hello";
if (obj instanceof String) {
    String str = (String) obj;
    System.out.println(str.toUpperCase());  // ์ถœ๋ ฅ: HELLO
}

๐Ÿ”น ๋น„์œ : ์ง€๋„ ํ™•์ธํ•˜๊ธฐ


instanceof์˜ ํŠน์ง• ์š”์•ฝ


5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


๐Ÿ“ ํ•œ๋ˆˆ์— ๋ณด๋Š” ์š”์•ฝ