본문 바로가기
Language/java

java.lang 패키지(래퍼 클래스)

by gamxong 2022. 7. 14.

 

래퍼 클래스

 

: 기본형 값을 객체로 다룰 수 있게 해줌.

: 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);

 

댓글