반응형
자바의 자료형
자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있다.
래퍼클래스
프로그래밍을 하다보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있습니다. 이럴 때 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 합니다. 
자바는 모든 기본타입은 값을 갖는 객체로 생성할 수 있습니다. 이런 객체를 포장 객체라고 하는데 그 이유는 기본 타입의 값을 내부로 두고 포장하기 때문입니다. 래퍼 클래스로 감싸고 있는 기본 타입의 값은 외부에서 변경할수 없습니다.
기본타입(primitive type) 래퍼 클래스(wrapper class)
byte Byte
char Character
int Integer
float Float
double Double
log Long
public class Wrapper_Ex
	public static void main(String[] args){
    	Integer num = new Integer(17); //박싱
        int n = num.IntValue(); //언박싱
        System.out.println(n);
    }
}

//자동 박싱(AutoBoxing), 자동 언박싱(AutoUnBoxing)
public class Wrapper_Ex
	public static void main(String[] args){
    	Integer num = 17;
        int n = num;
    }
}

//래퍼클래스 사용 예제
public class Wrapper_Ex {
    public static void main(String[] args)  {
        String str = "10";
        String str2 = "10.5";
        String str3 = "true";
        
        byte b = Byte.parseByte(str);
        int i = Integer.parseInt(str);
        short s = Short.parseShort(str);
        long l = Long.parseLong(str);
        float f = Float.parseFloat(str2);
        double d = Double.parseDouble(str2);
        boolean bool = Boolean.parseBoolean(str3);
		
        System.out.println("문자열 byte값 변환 : "+b);
        System.out.println("문자열 int값 변환 : "+i);
        System.out.println("문자열 short값 변환 : "+s);
        System.out.println("문자열 long값 변환 : "+l);
        System.out.println("문자열 float값 변환 : "+f);
        System.out.println("문자열 double값 변환 : "+d);
        System.out.println("문자열 boolean값 변환 : "+bool);
    }
}

값 비교

public class Wrapper_Ex {
    public static void main(String[] args)  {
        Integer num = new Integer(10); //래퍼 클래스1
        Integer num2 = new Integer(10); //래퍼 클래스2
        int i = 10; //기본타입
		 
        System.out.println("래퍼클래스 == 기본타입 : "+(num == i)); //true
        System.out.println("래퍼클래스.equals(기본타입) : "+num.equals(i)); //true
        System.out.println("래퍼클래스 == 래퍼클래스 : "+(num == num2)); //false
        System.out.println("래퍼클래스.equals(래퍼클래스) : "+num.equals(num2)); //true
    }
}
  • 래퍼클래스 == 기본타입 : true
  • 래퍼클래스.equals(기본타입) : true
  • 래퍼클래스 == 래퍼클래스 : false
  • 래퍼클래스.equals(래퍼클래스) : true

래퍼클래스 끼리 비교할때는 equals를 써야한다.

반응형

'Java' 카테고리의 다른 글

[Java] Java 8 에서의 변경사항  (0) 2022.05.05
추상클래스 vs 인터페이스  (0) 2022.04.07
GC (Garbage Collector)  (0) 2022.04.06
Java & Spring 버전 특징 정리  (0) 2022.04.04
IntelliJ IDEA 단축키  (0) 2021.01.28

+ Recent posts