자바

[Java] 래퍼 클래스

juhoyang 2024. 10. 2. 10:16

래퍼클래스 (Wrapper)

- 각각의 기본 타입에 상응하는 클래스

- 객체 불변성을 가진다.

 

Types

Wrapper : Boolean, Byte, Character, Double, Float, Integer, Long, Short

Pfimitive : boolean, byte, char, double, float, int, long, short

- String 은 래퍼클래스가 아니다. (대응되는 기본 데이터 유형을 가지고 있지않음)

 

래퍼클래스가 필요한 이유 

- 추가적인 기능들을 다양하게 사용가능하다.

- 유틸리티 메소드 제공

- 기본값을 컬렉션에 저장 가능하다. (컬렉션에 대상을 추가할 때 대상은 객체여야 하고 래퍼클래스가 기본값에 객체를 제공함)

 

래퍼클래스 객체 생성방법

1) 생성자 이용

- Integer num = new Integer(8);

 

2) valueOf 스태틱메소드 이용

- 각각의 래퍼 클래스에서 모두 해당 메소드 있음

- Integer num = Integer.valueOf(8);

 - Integer num = 8; (해당 방법은 AutoBoxing으로 valueOf를 이용해 변환한 내용이다.)

 

1), 2) 비교

- num ~ num4 모두 객체를 생성한 것이라 변수에 참조주소를 가지고 있을텐데 왜 num3, num4는 true가 나올까?

 

모든 래퍼클래스는 불변성을 가진다. (객체를 변경하지 않는 이상 값이 지정된 이후에는 연산이나 메소드에 의해 값이 변경될 수 없음)

valuOf는 위 불변성을 고려하여 Heap안에 같은 값을 가진 객체가 있다면 재사용하고 동일한 결과를 낸다.

 

AutoBoxing

- 래퍼클래스의 객체가 입력되야 하는 곳에 기본 타입의 값을 넣어주면 컴파일러가 알아서 래퍼로 변환시켜 주는 것

- java 5에서 새롭게 나온 기능

 

'자바' 카테고리의 다른 글

[Java] Array 와 ArrayList  (1) 2024.10.04
[Java] Date 타입 (LocalDate, LocalDateTime, LocalTime)  (0) 2024.10.02
[Java] String  (0) 2024.09.30
[Java] 기본형, 참조형데이터  (0) 2024.09.27
[Java] 생성자  (0) 2024.09.27