[Java] Wrapper class

toget ㅣ 2023. 10. 3. 11:24

wrapper는 기본 데이터 유형(primitive data types)을 객체로 래핑하거나 감싸는 클래스를 가리킵니다. 이러한 wrapper 클래스는 기본 데이터 유형을 객체로 다룰 수 있도록 하며, 일부 자바 라이브러리 및 기능에서는 객체가 필요한 경우에 사용됩니다.

기본 데이터 유형과 그에 대응하는 wrapper 클래스

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

 

박싱(Boxing)과 언박싱(UnBoxing)
래퍼 클래스(Wrapper class)는 산술 연산을 위해 정의된 클래스가 아니므로, 인스턴스에 저장된 값을 변경할 수 없습니다.

단지, 값을 참조하기 위해 새로운 인스턴스를 생성하고, 생성된 인스턴스의 값만을 참조할 수 있습니다.

예시

Integer wrappedInt =1000;
System.out.println(wrappedInt);
int unwrappedInt = wrappedInt;
int unwrappedInt2 = wrappedInt.intValue();
Integer wrappedInt2 =1000;
System.out.println(wrappedInt==wrappedInt2);

//1일때는 같은데 1000일떄는 다르다. ==을 사용하여 비교할 경우 일정한 범위 내에서는 같다고 결과가 나온다.
// 하지만 그 범위를 벗어날 경우 다르다 라고 나오게 된다.이후 범위는 해시코드를 비교하게 된다.

//boolean => true , false
//byte, short, int
//byte : 최소값 : -128 ,최대값 : 127
//short: 최소값 : -32768 ,최대값 : 32767
//int : -21억 ~ 21억

byte temp = 127;
System.out.println(temp++);

//unsigned? unsigned int > uInt
//byte => 8bit 2진수로 1111 1111 > 255
//byte temp => 1byte => 숫자를 255까지 나타 낼 수있다.
//int 와 float을 쓰는 이유는 통용될수 있도록쓰기 위해서 이지만 데이터베이스를 배울떄는 생각을 해볼 필요가 있다.
System.out.println(wrappedInt.equals(wrappedInt2));//eqals 를 넣어서 돌리면 트루가 나온다.

값의 래핑 및 언래핑: 기본 데이터 유형 값을 해당 wrapper 클래스의 객체로 래핑하거나, wrapper 객체에서 기본 데이터 유형 값을 추출하는 기능을 제공합니다. 예를 들어, int 값을 Integer 객체로 래핑하거나, Integer 객체에서 int 값을 추출할 수 있습니다.

Null 값 처리: 기본 데이터 유형은 값을 가지고 있어야 하지만, wrapper 클래스는 null을 값으로 가질 수 있습니다. 이것은 값이 없음을 나타내는 데 유용하며, 데이터베이스나 컬렉션과 같은 자료구조에서 유연성을 제공합니다.

참조
http://www.tcpschool.com/java/java_api_wrapper

'Java' 카테고리의 다른 글

[Java] StringBuilder 사용법  (0) 2023.10.03
[Java] String, StringBuffer, StringBuilder 차이점과 장단점  (0) 2023.10.03
[Java] Math 클래스  (0) 2023.10.03
[Java] enum (열거형)  (0) 2023.10.03
[Java] java.lang 클래스  (0) 2023.10.03