Skip to content

Latest commit

ย 

History

History
245 lines (171 loc) ยท 10.3 KB

data_type.md

File metadata and controls

245 lines (171 loc) ยท 10.3 KB

Data Type in Java

๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋ž€, ๋ฏธ๋ฆฌ ์ •ํ•ด๋†“์€ ์•ฝ์†์œผ๋กœ ๋ฐ์ดํ„ฐ๋งˆ๋‹ค ๊ธฐ์ค€์„ ๋‚˜๋ˆ„๋ฉฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์‹œ ์ด๋ฅผ ๊ตฌ๋ถ„์ง“๊ธฐ ์œ„ํ•จ์ด๋‹ค.

์ˆซ์ž๋ฉด ์ˆซ์ž, ๋ฌธ์ž๋ฉด ๋ฌธ์ž๋ผ๊ณ ๋งŒ ์นญํ•˜๋ฉด๋˜์ง€ ์™œ ๋‚˜๋ˆ„๊ฒŒ ๋œ ๊ฒƒ์ผ๊นŒ?
๊ทธ ์ด์œ ๋Š” ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ์— ์žˆ๋‹ค.
๋ชจ๋“  ์ˆ˜๋ฅผ 8byte์ธ long ํƒ€์ž…์œผ๋กœ ๋‚˜ํƒ€๋ƒˆ์„ ๋•Œ, 1 ํ˜น์€ 2 ์™€ ๊ฐ™์ด ํ•œ์ž๋ฆฌ ์ˆ˜๋งŒ ์ €์žฅํ•œ๋‹ค๋ฉด ๋‚˜๋จธ์ง€ ๋น„ํŠธ๋Š” ๋†€๊ฒŒ๋œ๋‹ค.
์ด๋Ÿฐ ์ด์œ ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํƒ€์ž…์œผ๋กœ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ž๋ฐ”์—์„œ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ํฌ๊ฒŒ ๊ธฐ๋ณธํ˜• ํƒ€์ž…๊ณผ ์ฐธ์กฐํ˜• ํƒ€์ž…๋กœ ๋‚˜๋‰œ๋‹ค.


Primitive(๊ธฐ๋ณธํ˜•/์›์‹œํ˜•) Type

์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์ด 8๊ฐ€์ง€์ด๋‹ค.

Data type Default Value Size
boolean(์ฐธ/๊ฑฐ์ง“) false 1 bit
char(๋ฌธ์ž) '\u0000' 2 byte
byte(์ •์ˆ˜) 0 1 byte
short(์ •์ˆ˜) 0 2 byte
int(์ •์ˆ˜) 0 4 byte
long(์ •์ˆ˜) 0L 8 byte
float(์‹ค์ˆ˜) 0.0f 4 byte
double(์‹ค์ˆ˜) 0.0d 8 byte

Boolean

๊ธฐ๋ณธ์ ์œผ๋กœ true, false๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฐธ/๊ฑฐ์ง“ 2๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๊ฐ–๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋œ๋‹ค.

Char

๋‹จ์ผ 16-bit ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž์ด๋ฉฐ, '\u0000' ~ '\uffff'๊นŒ์ง€ ๋‚˜ํƒ€๋‚ผ ์ˆ˜์žˆ๋‹ค.
7bit์˜ ASCII ์ฝ”๋“œ์˜ ํ™•์žฅ์œผ๋กœ 16bit์˜ ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ

Byte

8bit ๋‹จ์œ„์˜ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํƒ€์ž…์ด๋ฉฐ, -128~127๊นŒ์ง€ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
๋ณดํ†ต ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ์ด ๊ฐ€์žฅ ํ•„์š”ํ•œ ํฐ ๋ฐฐ์—ด ์•ˆ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์šฉ๋„๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

Short

16bit์˜ ๋ถ€ํ˜ธ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ •์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, -32,768~32,757 ์‚ฌ์ด์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
byte ํƒ€์ž…๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Int

๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ์„ ์œ„ํ•ด byte์™€ short๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”ํ•œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ์— int ํ˜•์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
32bit์˜ ๋ถ€ํ˜ธ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ •์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ์— -2,147,483,648(-2^31^)~2,147,483,647(2^31^-1) ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

Long

int ํƒ€์ž…๋ณด๋‹ค ๋” ๋งŽ์€ ์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด long ํƒ€์ž…์ด๋‹ค.
-9,223,372,036,854,775,808(-2^63^)~9,223,372,036,854,775,807(2^63^ -1)์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
int ํ˜•๊ณผ ๊ตฌ๋ถ„์ง“๊ธฐ ์œ„ํ•ด ์ˆซ์ž ๋’ค์— L์„ ๋ถ™ํžŒ๋‹ค.

Float

32bit์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” 3.4 X 10^-38^ ~ 3.4 X 10^38^ ์ด๋‹ค.
๋ฌด์ œํ•œ์ด์ง€๋งŒ ๋งค์šฐ ํฐ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋Š” double ํƒ€์ž…์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด ์ข‹์œผ๋ฉฐ, ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ค์ฐจ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ •ํ™•ํ•œ ๊ฐ’์„ ์š”๊ตฌํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
double๊ณผ ๊ตฌ๋ถ„์ง“๊ธฐ ์œ„ํ•ด ์ˆซ์ž ๋’ค์— f๋ฅผ ๋ถ™ํžŒ๋‹ค.

๋ถ€๋™ ์†Œ์ˆ˜์ 

๋ถ€๋™ ์†Œ์ˆ˜์ ์€ 1.11212... ๊ณผ ๊ฐ™์ด ๋ฌด์ œํ•œ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ์‹ค์ˆ˜ ๊ฐ’์„ ์ปดํ“จํ„ฐ๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ์ธก์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทผ์‚ฌํ•œ ๊ฐ’์œผ๋กœ ๊ณ„์‚ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

1bit์˜ ๋ถ€ํ˜ธ ๋น„ํŠธ๋ฅผ ๊ฐ€์ง€๊ณ , 8bit์˜ ์ง€์ˆ˜๋น„ํŠธ(float, double์€ 11bit) ๋‚˜๋จธ์ง€ ๋น„ํŠธ๋ฅผ ๊ฐ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

Double

64bit์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, 1.7 X 10^-308^~1.7 X 10^308^ ์‚ฌ์ด์˜ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
์ด ๋˜ํ•œ ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ •ํ™•ํ•œ ๊ฐ’์„ ํŒ๋‹จํ•˜๋Š” ๊ณณ์— ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
float๊ณผ ๊ตฌ๋ถ„์ง“๊ธฐ ์œ„ํ•ด ์ˆซ์ž ๋’ค์— d๋ฅผ ๋ถ™ํžŒ๋‹ค.


Reference(์ฐธ์กฐํ˜•) Type

๊ธฐ๋ณธํ˜•์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํƒ€์ž… ํ˜น์€ java.lang.Object๋ฅผ ์ƒ์† ๋ฐ›๊ฒŒ ๋œ๋‹ค๋ฉด ์ฐธ์กฐํ˜• ํƒ€์ž…์ด ๋œ๋‹ค.
๊ธฐ๋ณธํ˜•๊ณผ ๋‹ฌ๋ฆฌ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋นˆ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” Null ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ์กฐํ˜•์˜ ๊ฒฝ์šฐ, ์Šคํƒ ์˜์—ญ์— ๋ฐ”๋กœ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ธฐ๋ณธํ˜•๊ณผ๋Š” ๋‹ฌ๋ฆฌ ํž™ ์˜์—ญ์— ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.
์ด๋ฅผ ํ•ธ๋“ค๋งํ•˜๊ธฐ ์œ„ํ•ด ์Šคํƒ ์˜์—ญ์— ํž™ ์˜์—ญ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ฒŒ ๋œ๋‹ค.

๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด array_1,array_2์™€ ๊ฐ™์ด ๋ฐฐ์—ด(์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…)์„ ์„ ์–ธ์‹œ์—๋Š” ํž™ ์˜์—ญ์— ์ƒ์„ฑ์ด ๋œ๋‹ค.(๊ฐ„๋‹จํ•œ ๊ทธ๋ฆผ) ๋งŒ์•ฝ ๋‹ค์Œ ์ฝ”๋“œ์™€ ๊ฐ™์ด array_2์— array_1 ๊ฐ’ ์ž์ฒด๋ฅผ ํ• ๋‹นํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

array_2 = array_1;

๋ฐ‘ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์Šคํƒ ์˜์—ญ์— ๊ฐ’์€ ํž™ ์˜์—ญ์„ ์ฐธ์กฐํ•˜๋Š” ์ฃผ์†Œ ๊ฐ’์ด๋ฏ€๋กœ array_2 ๊ฐ’์€ array_1์˜ ์ฃผ์†Œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.

์ด๋ฅผ ์–•์€ ๋ณต์‚ฌ๋ผ๊ณ  ํ•˜๋ฉฐ, ์ฐธ์กฐ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œ ๋‹นํ•œ๋‹ค.
๊ทธ ๋ฐ˜๋Œ€๋กœ ๊นŠ์€ ๋ณต์‚ฌ๋Š” ๋ฐฐ์—ด ์ž์ฒด์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ณต์‚ฌ๋ฅผ ํ•œ๋‹ค.

for(int idx = 0; idx < array_1.size(); idx++){
  array_2[idx] = array_1[idx];
}

์ด๋Ÿฌํ•œ ํŠน์ง•์„ ๊ฐ€์ง„ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ๋ฐฐ์—ด(array), ์—ด๊ฑฐ(enum), ์ธํ„ฐํŽ˜์ด์Šค(interface), ํด๋ž˜์Šค(class) ํƒ€์ž…์ด ์กด์žฌํ•œ๋‹ค.

Array

๋ฐฐ์—ด ํƒ€์ž…์€ ๊ธฐ๋ณธํ˜• ํ˜น์€ ์ฐธ์กฐํ˜•์œผ๋กœ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

int [] numArr = new int[5];               //๊ธฐ๋ณธํ˜•
int [][] twoDimenNumArr = new int[5][5];  //[][]๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
Object[] objectArr = new Object[5];       //์ฐธ์กฐํ˜•

Enum

์—ด๊ฑฐ ํƒ€์ž…์˜ ๊ฒฝ์šฐ, ๋ถˆ๋ณ€ ๊ฐ์ฒด์ด๋ฉฐ ์ƒ์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ ํ˜น์€ ์–ด๋– ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ๋“ค์˜ ์ง‘ํ•ฉ์„ ๋งŒ๋“ค ๋•Œ ๊ฐ€๋…์„ฑ์ด ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

enum BloodType {
  A, B, O, AB
}

Interface

์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ ์–ธํ•˜๊ฒŒ ๋˜๋ฉด ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.
์ฆ‰, ์ž์‹ ์„ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

interface CalcInterface<T> {
  T add(T value, T value);
  T sub(T value, T value);
  T mul(T value, T value);
  T div(T value, T value);
}

Class

ํด๋ž˜์Šค ํƒ€์ž…์˜ ๊ฒฝ์šฐ, ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ๋ˆ๋‹ค.

class Person {
  private String name;
  private int age;
  Person(String name, int age){
    this.name = name;
    this.age = age;
  }
}

์ž๋ฐ”์—์„œ ๋ชจ๋“  ํด๋ž˜์Šค ํƒ€์ž…๋“ค์€ Object Class๋ฅผ ์ง์ ‘ ํ˜น์€ ๊ฐ„์ ‘์œผ๋กœ ์ƒ์†ํ•˜๊ณ  ์žˆ๋‹ค.

  • Object Class

    ํด๋ž˜์Šค ๊ณ„์ธต๊ตฌ์กฐ์—์„œ ๋ฃจํŠธ ํด๋ž˜์Šค๋กœ ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์•„๋‹Œ ๊ฒฝ์šฐ(๋ฐฐ์—ด, ์—ด๊ฑฐ, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ๋“ฑ), ์ด Object ํด๋ž˜์Šค๋ฅผ ์ง์ ‘/๊ฐ„์ ‘์ ์œผ๋กœ ์ƒ์†ํ•œ๋‹ค.
    ์ด Object ํด๋ž˜์Šค๋Š” java.lang ํŒจํ‚ค์ง€ ์•ˆ์— ์กด์žฌํ•˜๋ฉฐ, import ๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
    ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๋ฏ€๋กœ ์ด ์•ˆ์— ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋“ค์„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ด๋“ค์€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ ์†Œ๋ฉธ ๋“ฑ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ ๋ฐ ๋น„๊ต, ํด๋ž˜์Šค ์ •๋ณด ํ™•์ธ ์ž‘์—…๋“ฑ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

    • clone() - ๊ฐ์ฒด์™€ ๋™์ผํ•œ ํด๋ž˜์Šค์˜ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
    • toString() - ๊ฐ์ฒด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜
    • equals(Object) - ๋‘ ๊ฐ์ฒด์˜ ๋น„๊ต
    • finalize() - ๋ฉ”๋ชจ๋ฆฌ ํšŒ์ˆ˜์‹œ ํ˜ธ์ถœ

    ์ด๋Ÿฌํ•œ Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… ๊ด€๋ จ ํด๋ž˜์Šค๋กœ๋Š” String, Wrapper ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด์ž.

  • String Class

    String์˜ ๊ฒฝ์šฐ ์ฐธ์กฐํ˜•์— ์†ํ•˜๋‚˜ ์‚ฌ์šฉ์€ ๊ธฐ๋ณธํ˜•๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ๋ถˆ๋ณ€(immutable) ๊ฐ์ฒด๋กœ ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ํ• ๋‹น์„ ํ•œ๋‹ค.

    String name = "jongnan";
    name += "a";              //๊ธฐ์กด ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, jongnana์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ์ƒ์„ฑ
    System.out.println(name); //output : jongnana 
  • Wrapper Class

    ๊ธฐ๋ณธํ˜•์˜ ๊ฒฝ์šฐ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๊ธฐ๋ณธ ๊ฐ’์ด ๋‹ค ์ •ํ•ด์ ธ ์žˆ์œผ๋ฉฐ null ๊ฐ’์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.
    ๋˜ํ•œ, ์ž๋ฐ”์˜ ๊ฒฝ์šฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋ฏ€๋กœ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

    • ์ง๋ ฌํ™”(Serialization)

      ์ง๋ ฌํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด๋กœ ๋ณ€๊ฒฝ์ด ํ•„์š”

    • ๋™๊ธฐํ™”(Synchronization)

      ์ž๋ฐ”์—์„œ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ ์•ˆ์—์„œ ๋™๊ธฐํ™”๋Š” ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  ๋™์ž‘ํ•œ๋‹ค.

    • Collection Framework

      ์ž๋ฐ” ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ’์„ ๊ฐ์ฒด๋กœ๋งŒ ์ฒ˜๋ฆฌํ•œ๋‹ค.

    ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธํ˜•์—์„œ ์ฐธ์กฐํ˜•์œผ๋กœ ๋ณ€๊ฒฝ์„ ํ•ด์•ผ๋˜๋Š”๋ฐ ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด Wrapper ํด๋ž˜์Šค์ด๋‹ค.

    Wrapper ํด๋ž˜์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ธฐ๋ณธํ˜•๊ณผ ๋งค์นญ์ด ๋œ๋‹ค.

    Primitive Type Wrapper Class
    boolean Boolean
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character

    ๋ณดํ†ต ๊ธฐ๋ณธํ˜• โ†’ ์ฐธ์กฐํ˜•์„ Boxing, ๊ทธ ๋ฐ˜๋Œ€์ธ ์ฐธ์กฐํ˜• โ†’ ๊ธฐ๋ณธํ˜•์„ Unboxing์ด๋ผ๊ณ  ํ•œ๋‹ค.
    JDK 1.5 ์ด์ „ ๋ฒ„์ „์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ณผ์ •์„ ์ˆ˜๋™์œผ๋กœ ํ•ด์ฃผ์–ด์•ผ ํ–ˆ์ง€๋งŒ, JDK 1.5 ์ด์ƒ๋ถ€ํ„ฐ๋Š” Autoboxing์„ ์ง€์›ํ•œ๋‹ค.

    int primNum = 20;
    Integer autoWrapperNum = primNum;           //AutoBoxing
    Integer wrapperNum = new Integer(primNum);  //Boxing
    int unBoxedNum = (int)wrapper;              //Unboxing



Reference