래퍼 클래스
: 기본형 값을 객체로 다룰 수 있게 해줌.
: equals()가 오버라이딩되어 있음 → 주소값이 아닌 객체가 가지고 있는 값을 비교
기본형 | 래퍼클래스 | 생성자 | 활용예 |
boolean | Boolean | Boolean(boolean value) Boolean(String s) |
Boolean b =new Boolean(true); Boolean b2 = new Boolean("true"); |
char | Character | Character(char value) | Character c = new Character('a'); |
byte | Byte | Byte(byte value) Byte(String s) |
생략 |
short | Short | 생략 | 생략 |
int | Integer | 생략 | 생략 |
long | Long | 생략 | 생략 |
float | Float | Float(double value) Float(float value) Float(String s) |
Float f = new Float(1.0); Float f2 = new Float(1.0f); Float f3 = new Float("1.0f"); |
double | Double | Double(double value) Double(String s) |
생략 |
Number클래스
: 추상클래스이다.
: 기본형 중에서 숫자와 관련된 래퍼 클래스들은 모두 Number클래스의 자손
: 이 외에도 BigInteger, BigDecimal 등이 있다.
문자열을 숫자로 변환하기
int i = new Integer("100").intValue();
int i2 = Integer.parseInt("100"); // 주로 사용
Integer i3 = Integer.valueOf("100");
문자열 -> 기본형 | 문자열 -> 래퍼 클래스 |
int i= Integer.parseInt("100"); | int i = Integer.valueOf("100"); |
long l = Long.parseLong("100"); | long l = Long.valueOf("100"); |
* 다른 진법의 숫자일 때도 변환 가능
static int parseInt(String s, int radix). // 문자열 s를 radix진법으로 인식
static Integer valueOf(String s, int radix)
★ 진법을 생략하면 10진수로 인식
오토박싱 & 언박싱
: 기본형과 참조형 간의 덧셈이 가능
오토박싱 : 기본형 값을 래퍼 클래스의 객체로 자동 변환해주는 것언박싱 : 반대로 변환하는 것
// before compile
int i = 5;
Integer iObj = new Integer(7);
int sum = i + iObj;
// after compile
int i = 5l
Integer iObj = new Integer(7);
int sum = i + iObj.intValue();
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10); // 오토박싱. 10 > new Integer(10)
int value = list.get(0); // 언박싱. new Integer(10) > 10
컴파일 전 | 컴파일 후 |
Integer intg = (Integer)i; Object obj = (Object) i; Long lng = 100L; |
Integer intg = Integer.valueOf(i); Object obj = (Object)Integer.valueOf(i); Long lng = new Long(100L); |
'Language > java' 카테고리의 다른 글
[Java] 유용한 클래스(java.util.Random클래스) (0) | 2022.07.14 |
---|---|
java.lang 패키지(java.util.Objects클래스) (0) | 2022.07.14 |
java.lang 패키지(Math 클래스) (0) | 2022.07.14 |
java.lang 패키지(StringBuffer, StringBuilder 클래스) (0) | 2022.07.14 |
Java_Study_ java.lang 패키지(String클래스) (0) | 2022.07.12 |
댓글