본문 바로가기

Java

[Java] 26

API(Application Programing Interface)

- 개발자들을 위해 기본적으로 제공하는 틀(클래스 틀)

- 외부 API

- 내부 API : 클래스들 String, ...

Wrapper Class

- 기본 자료형을 감싸는 클래스

박싱 / 언박싱

1. 박싱(boxing)

- 기본 자료형을 자신을 감싸는 클래스 타입으로

2. 언박싱(unboxing)

- 클래스 타입을 기본 타입으로

 

 

 

 

 

실습(Wrapper 클래스)

1. int

public class WrapperTest {
	public static void main(String[] args) {
		
		int num1 = 10;
		int num2 = 10;
		Integer num3 = new Integer(10);
		Integer num4 = new Integer(10);
		
		
		System.out.println(num1  == num3);  // num3가 auto unboxing 된 후 비교된다.
		System.out.println(num3.equals(num1));  // num1이 auto boxing
		
		System.out.println("num1 : " + num1);
		System.out.println("num2 : " + num2);
		System.out.println("num3 : " + num3);
		System.out.println("num4 : " + num4);
		System.out.println("num1 == num2 : " + (num1  == num2));
		
		// num3 객체와 num4 객체가 같은지 비교
		System.out.println("num3 == num4 : " + (num3  == num4));
		
		// 내용을 비교하고 싶을 때는 .equals() 사용
		System.out.println("num3.equals(num4) : " + num3.equals(num4));
		
	}
}

 

결과

 

2. String

public class WrapperTest {
	public static void main(String[] args) {
		
		String str1 = "안녕";
		String str2 = "안녕";
		String str3 = new String("안녕");
		String str4 = new String("안녕");
		
		String temp = str4;

		System.out.println(temp == str4);
		System.out.println(str1 == str2);
		System.out.println(str3 == str4);
		System.out.println(str3.equals(str4));
		
	}
}

 

결과

 

실습(boxing / unboxing)

1. boxing

public class BoxingUnboxing {
	public static void main(String[] args) {

		// boxing → 기본 → 클래스
		int i1 = 10;
		Integer wi1 = new Integer(i1);  // boxing
		
		// jdk 1.5 이후
		// auto boxing
		Integer wi2 = 10;
		
		// auto boxing, up casting
		Object[] ar = {10, 3.1, true, 'a'};
		
	}
}

 

2. unboxing

public class BoxingUnboxing {

	public static void main(String[] args) {

		// boxing
		int i1 = 10;
		Integer wi1 = new Integer(i1);
		
		// unboxing → 클래스 → 기본
		wi1.intValue();

		// auto unboxing
		int i2 = wi2;
		
	}
}

 

'Java' 카테고리의 다른 글

[Java] 28  (0) 2022.01.29
[Java] 27  (0) 2022.01.28
[Java] 25  (0) 2022.01.25
[Java] 24  (0) 2022.01.24
[Java] 23  (0) 2022.01.23