• ABOUT
  • PORTFOLIO
  • POSTS
  • GUESTBOOK

ยฉ 2025 BlueCool12 All rights reserved.

2025.08.11Java

๐Ÿ“‘ ์ž๋ฐ” ์ž๋ฃŒํ˜• ์™„์ „ ์ •๋ฆฌ [๊ธฐ๋ณธํ˜•, ์ฐธ์กฐํ˜•, Wrapper ํด๋ž˜์Šค]

1. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• (Primitive Type)

๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ง์ ‘ ์ €์žฅํ•˜๋ฉฐ ์ฃผ๋กœ ์Šคํƒ(Stack) ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ํ• ๋‹น๋œ๋‹ค. ์ž๋ฐ”์—๋Š” ์ด 8๊ฐœ์˜ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์ด ์ •์˜๋˜์–ด ์žˆ๋‹ค.

์ •์ˆ˜ํ˜•

byte
1byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋‹ค.
ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” -128 ~ 127์ด๋‹ค.

short
2byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋‹ค.
ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” -32,768 ~ 32,767์ด๋‹ค.

int
4byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋‹ค.
ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” -2^31 ~ (2^31 - 1)์ด๋‹ค. (์•ฝ +-21์–ต)

long
8byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 0L์ด๋‹ค.
ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” -2^63 ~ (2^63 - 1)์ด๋‹ค. (์•ฝ +-9๊ฒฝ 2,000์กฐ)


์‹ค์ˆ˜ํ˜•

float
4byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 0.0f์ด๋‹ค.
ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” ์•ฝ +-3.4 * 10^38์ด๋‹ค. (๋‹จ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ )

double
8byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 0.0d์ด๋‹ค.
ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” ์•ฝ +-1.7 * 10^308์ด๋‹ค. (๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ )

โ€ป ์‹ค์ˆ˜ํ˜•์€ ๊ทผ์‚ฌ๊ฐ’์œผ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์‚ฐ ๊ณผ์ •์—์„œ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.


๋ฌธ์žํ˜•

char
2byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ '\u0000'์ด๋‹ค.
ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” \u0000 ~ \uffff์ด๋‹ค. (์œ ๋‹ˆ์ฝ”๋“œ)


๋…ผ๋ฆฌํ˜•

boolean
๊ธฐ๋ณธ๊ฐ’์€ false์ด๋‹ค.

boolean์€ ํฌ๊ธฐ๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ JVM ๊ตฌํ˜„ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด์—์„œ๋Š” 1byte, ๋‹จ์ผ ๋ณ€์ˆ˜์—์„œ๋Š” 4byte(int ํฌ๊ธฐ)๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” true ๋˜๋Š” false์ด๋‹ค.


2. ์ฐธ์กฐ ์ž๋ฃŒํ˜• (Reference Type)

์ฐธ์กฐ ์ž๋ฃŒํ˜•์€ ์‹ค์ œ ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ(Reference)๋ฅผ ์ €์žฅํ•œ๋‹ค. ๋ณ€์ˆ˜๋Š” ์Šคํƒ(Stack) ์˜์—ญ์— ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์‹ค์ œ ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋Š” ํž™(Heap) ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• 8๊ฐ€์ง€๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ํƒ€์ž…์ด ์ฐธ์กฐ ์ž๋ฃŒํ˜•์— ํ•ด๋‹นํ•œ๋‹ค.

String name = "Java";        // ๋ฌธ์ž์—ด ๊ฐ์ฒด ์ฐธ์กฐ
int[] numbers = {1, 2, 3}; // ๋ฐฐ์—ด ๊ฐ์ฒด ์ฐธ์กฐ
myClass obj = new MyClass(); // ์‚ฌ์šฉ์ž ์ •์˜ ํด๋ž˜์Šค ๊ฐ์ฒด ์ฐธ์กฐ

์ฐธ์กฐ ์ž๋ฃŒํ˜•์€ null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๊ฐ์ฒด์ด๋ฏ€๋กœ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ์กฐ ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜๋ผ๋ฆฌ == ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. ์‹ค์ œ ์ €์žฅ๋œ ๊ฐ’์„ ๋น„๊ตํ•˜๋ ค๋ฉด equals() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. (์ฐธ๊ณ )

String a = new String("BlueCool");
String b = new String("BlueCool");

System.out.println(a == b); // false (์ฃผ์†Œ ๋น„๊ต)
System.out.println(a.equals(b)); // true (๊ฐ’ ๋น„๊ต)

Java์—์„œ๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ(Garbage Collector)๊ฐ€ ๋” ์ด์ƒ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.


3. Wrapper ํด๋ž˜์Šค

์ž๋ฐ”์˜ ๋ž˜ํผ ํด๋ž˜์Šค๋Š” 8๊ฐœ์˜ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ํฌ์žฅํ•œ ์ฐธ์กฐ ์ž๋ฃŒํ˜•์ด๋‹ค. ์ด ํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ java.lang ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.


์‚ฌ์šฉ ๋ชฉ์ 

  • ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉ
    ArrayList, HashMap ๋“ฑ ์ž๋ฐ”์˜ ์ œ๋„ค๋ฆญ ๊ธฐ๋ฐ˜ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ์ฒด๋งŒ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ž˜ํผ ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.
  • ์ œ๋„ค๋ฆญ ํƒ€์ž… ์ธ์ˆ˜ ์ œํ•œ
    ์ œ๋„ค๋ฆญ์—์„œ๋Š” ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์„ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • null ์ƒํƒœ ํ‘œํ˜„
    ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์€ null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. ๋ฐ˜๋ฉด ๋ž˜ํผ ํด๋ž˜์Šค๋Š” ์ฐธ์กฐ ์ž๋ฃŒํ˜•์ด๋ฏ€๋กœ null ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ๋“ฑ์—์„œ ๊ฐ’์ด ์—†๋Š” ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
  • ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฉ”์„œ๋“œ ๋ฐ ์ƒ์ˆ˜ ์ œ๊ณต
    ๋ž˜ํผ ํด๋ž˜์Šค๋Š” ํ˜• ๋ณ€ํ™˜, ๋ฌธ์ž์—ด ๋ณ€ํ™˜, ์ƒ์ˆ˜๊ฐ’ ๋ฐ˜ํ™˜ ๋“ฑ ๋‹ค์–‘ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.


๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ๋ž˜ํผ ํด๋ž˜์Šค ๋งคํ•‘

byte -> Byte
short -> Short
int -> Integer
long -> Long
float -> Float
double -> Double
char -> Character
boolean -> Boolean


๋ฐ•์‹ฑ(Auto-Boxing) & ์–ธ๋ฐ•์‹ฑ(Unboxing)

๋ฐ•์‹ฑ์€ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์˜ ๊ฐ’์„ ๋ž˜ํผ ํด๋ž˜์Šค ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•˜๋ฉฐ ์–ธ๋ฐ•์‹ฑ์€ ๋ž˜ํผ ํด๋ž˜์Šค ๊ฐ์ฒด์— ์ €์žฅ๋œ ๊ฐ’์„ ๋‹ค์‹œ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค.

์ž๋ฐ”์—์„œ๋Š” JDK 1.5๋ถ€ํ„ฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์˜คํ† ๋ฐ•์‹ฑ๊ณผ ์˜คํ† ์–ธ๋ฐ•์‹ฑ์„ ์ง€์›ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ์ฒด ์ƒ์„ฑ์ด๋‚˜ ๊ฐ’ ์ถ”์ถœ ๋ฉ”์„œ๋“œ๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ๋ž˜ํผ ํด๋ž˜์Šค ๊ฐ„ ๋ณ€ํ™˜์ด ์ž๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

// ์˜คํ† ๋ฐ•์‹ฑ: ๊ธฐ๋ณธํ˜• -> Wrapper
Integer numObj = 10; // Integer.valueOf(10) ์ž๋™ ์ ์šฉ

// ์˜คํ† ์–ธ๋ฐ•์‹ฑ: Wrapper -> ๊ธฐ๋ณธํ˜•
int num = numObj; // numObj.intValue() ์ž๋™ ์ ์šฉ
์ด์ „ ๊ธ€
๐Ÿ”‘ SSH & SFTP ๊ธฐ์ดˆ ๊ฐ€์ด๋“œ - ์„œ๋ฒ„ ์ ‘์†๊ณผ ํŒŒ์ผ ์ „์†ก
๋‹ค์Œ ๊ธ€
๐Ÿ”„ ์ž๋ฐ” Stream API ๊ฐ€์ด๋“œ - ์ƒ์„ฑ, ์—ฐ์‚ฐ, ์žฅ๋‹จ์  ์ •๋ฆฌ
์žฅ์‹์šฉ ๋กœ๊ณ