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 |