java/Class.Interface.Method

[Java] Wrapper class 관련

잘할수있을거야 2021. 12. 16. 13:22

Collection에는 객체를 담아야 한다.

primitive 타입은 객체가 아니라 Collection에 넣지 못한다.

primitive 타입이 객체로 변경된 것에 해당하는 클래스인 Wrapper클래스를 사용하여 Collection에 넣는다.

 

primitive타입이 객체 타입으로 변환된 클래스가 Wrapper 클래스

int타입의 Wrapper 클래스인 Integer 클래스만 확인해봄

 

int / Integer (int형 Wrapper 클래스) 간의 Boxing, Unboxing , AutoBoxing, AutoUnboxing

package wrapperclass;

public class WrapperTest {

	public static void main(String[] args) {

		Integer integer1 = Integer.valueOf(30);
		// new Integer(30) deprecated since 9
		Integer integer2 = 30;
		// auto boxing

		System.out.println("Integer integer1 = Integer.valueOf(30);");
		System.out.println("Integer integer2 = 30;");
		System.out.println();
		
		// hashCode()
		System.out.println("integer1.hashCode(): " + integer1.hashCode());
		System.out.println("integer2.hashCode(): " + integer2.hashCode());
		System.out.println();

		// toString()
		System.out.println("integer1.toString(): " + integer1.toString());
		System.out.println("integer2.toString(): " + integer2.toString());
		System.out.println();

		// equals (인자가 null아니고, Integer타입이고, 같은 value를 가지면 true
		System.out.println("integer1==integer2: " + (integer1 == integer2));
		System.out.println("integer1.equals(integer2): " + integer1.equals(integer2));
		System.out.println();

		int i1 = integer1; 
		// auto unboxing
		//= int i1 = integer1.intValue(); 
		int i2 = integer2;
		
		System.out.println("i1==i2: " + (i1 == i2));

	}

}

객체 배열 요소 defualt값은 null

public class ArrayTest {

	public static void main(String[] args) {

		Integer[] integers = new Integer[100];
		System.out.println(integers[0].intValue());
	}
}