-
Wrapper클래스란?Java/자바의정석 2023. 2. 22. 23:41반응형
Wrapper클래스란?
기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다.
기본 자료 타입 래퍼 클래스 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 기본자료타입에는 위의 표와같이 8개의 타입이있다. 래퍼클래스를 사용할때는char, int를 제외한경우 앞글자를 대문자로 해주기만하면 끝이난다.객체지향언어인데 모든것이 객체가 아니다?
라는 질문에 대응하기위한 클래스가 아닐까 싶다.
왜 기본형이라는 예외를 두었는지의 원인은 성능때문이라고한다.
참조형의 경우 값을 읽어올때 참조형 주소를 읽고 그 주소를 통해서만 값을 읽어와야하기 때문이라고한다.
아래의 코드를 통해 확인해보자.
class Ex9_14 { public static void main(String[] args) { Integer i = new Integer(100); Integer i2 = new Integer(100); System.out.println("i==i2 ? "+(i==i2)); System.out.println("i.equals(i2) ? "+i.equals(i2)); System.out.println("i.compareTo(i2)="+i.compareTo(i2)); System.out.println("i.toString()="+i.toString()); System.out.println("MAX_VALUE="+Integer.MAX_VALUE); System.out.println("MIN_VALUE="+Integer.MIN_VALUE); System.out.println("SIZE="+Integer.SIZE+" bits"); System.out.println("BYTES="+Integer.BYTES+" bytes"); System.out.println("TYPE="+Integer.TYPE); //int } }
=============실행결과==============
i==i2 ? false
i.equals(i2) ? true
i.compareTo(i2)=0
i.toString()=100
MAX_VALUE=2147483647
MIN_VALUE=-2147483648
SIZE=32 bits
BYTES=4 bytes
TYPE=intInteger i = new Integer(100); Integer i2 = new Integer(100); System.out.println("i==i2 ? "+(i==i2));
i == i2 의 결과는 false이다. Integer를 통하여 객체로 생성하였기 때문에 각각 참조하고있는 주소가 다르기 때문이다.
System.out.println("i.equals(i2) ? "+i.equals(i2));
equals를 사용한다면 true를 반환한다. 오버라이딩이 되어있기 때문에 넘겨받은 인자값을 비교하기 때문이다.
compareTo()
System.out.println("i.compareTo(i2)="+i.compareTo(i2));
compareTo() : 같으면 0 , 오른쪽이 작으면 양수, 오른쪽이 크면 음수를 반환 (정렬에 주로 사용)
해당코드에서는 i.compareTo(i2) : 같기 때문에 0을 반환
100 == 100
MIN,MAX
System.out.println("MAX_VALUE="+Integer.MAX_VALUE); System.out.println("MIN_VALUE="+Integer.MIN_VALUE);
MIN,MAX의 경우는 최대값 최소값을 반환한다. +20억 / -20억을 반환한다.
System.out.println("SIZE="+Integer.SIZE+" bits"); System.out.println("BYTES="+Integer.BYTES+" bytes"); System.out.println("TYPE="+Integer.TYPE);
SIZE : 32비트
BYTE : 4바이트
TYPE: int
Integer클래스를 대표로 몇가지 예시를 두고 알아보았다.
Integer를 제외한 나머지 클래스도 대부분 다 비슷하니 동일하게 사용해도 무방할것이다.
반응형'Java > 자바의정석' 카테고리의 다른 글
자바 Calendar의 여러가지 기능들 (0) 2023.02.23 Math메서드, Round(), Rint() 비교하기 (0) 2023.02.22 자바 Math의 주요 메서드 (0) 2023.02.22 여러가지 StringBuffer메서드 (0) 2023.02.22 자바의정석 - StringBuffer()란? (0) 2023.02.22