BE/Java

[Java] 래퍼 클래스

baek-dev 2024. 12. 3. 18:32

List, Map 등 에서는 객체만 저장할수 있기 때문에 기본자료형을 객체로 변환하여 사용한다

기본자료형 래퍼 클래스
`byte` `Byte`
`short` `Short`
`int` `Integer`
`long` `Long`
`float` `Float`
`double` `Double`
`char` `Character`
`boolean` `Boolean`

 

래퍼 클래스를 사용하면 박싱, 언박싱을 통해 기본자료형과 객체간 변환이 가능해진다

박싱, 언박싱

박싱

  • 기본자료형을 객체(래퍼클래스)로 변환하는 과정
int num = 10;

// 수동 박싱
Integer boxedNum = Integer.valueOf(num);

// 자동 박싱
Integer autoBoxedNum = num;

언박싱

  • 객체(래퍼클래스)를 기본자료형으로 변환하는 과정
Integer boxedNum = 20;

// 수동 언박싱
int num = boxedNum.intValue();

// 자동 언박싱
int autoUnboxedNum = boxedNum;

주요 메서드

1. 값 변환

  • `intValue()`, `doubleValue()`등 : 래퍼 클래스의 값을 기본 자료형으로 변환
Integer num = 123;
int intValue = num.intValue();

 

2. 문자열 변환

  • `valueOf(String s)` : 문자열을 해당 래퍼 클래스의 객체로 변환
  • `parseInt(String s)` : 문자열을 기본자료형으로 변환
String str = "456";
Integer num = Integer.valueOf(str);
int intValue = Integer.parseInt(str);

 

3. 최대값/최소값 상수

  • `MAX_VALUE` : 해당 자료형의 최대값
  • `MIN_VALUE` : 해당 자료형의 최소값
Integer.MAX_VALUE
Integer.MIN_VALUE

 

4. 비교

  • `compare(int x, int y)` : 두 값을 비교하여 결과 반환 (`x == y` -> 0, `x > y` -> 1, `x < y` -> -1)
  • `equals(Object obj)` : 값이 같은지 비교
Integer num1 = 100;
Integer num2 = 200;
System.out.println(Integer.compare(num1,num2));	// -1
System.out.println(num1.equals(num2));	// false

객체 비교시 주의

객체는 `==`으로 비교하면 객체의 주소를 비교한다

값 비교를 하려면 `equals()`를 사용해야한다

 

캐싱된값 비교

  • `-128` 에서 `127`사이의 값은 자바에서 캐싱하므로 동일 객체로 처리되어 `==`으로 비교 가능함

 

 

 

 

출처 : ChatGPT

'BE > Java' 카테고리의 다른 글

[Java] List  (1) 2024.12.05
[Java] 컬렉션  (0) 2024.12.04
[Java] break, continue, return  (0) 2024.12.02
[Java] 연산자  (0) 2024.12.01
[Java] 반복문  (0) 2024.12.01