Open jiseongkimu opened 4 years ago
String name1 = "a";
String name2 = "a";
String name1_o = new String("a");
String name2_o = new String("a");
System.out.println("name1 == name2 : " + (name1 == name2)); //true
System.out.println("name1.equlas(name2)" + (name1.equals(name2))); //true
System.out.println("name1_o == name2_o : " + (name1_o == name2_o)); //false
System.out.println("name1_o.equlas(name2_o)" + (name1_o.equals(name2_o))); //true
//래퍼 객체는 내부의 값을 비교하기 위해 == 연산자를 사용할 수 없습니다
// 이 연산자는 내부의 값을 비교하는 것이 아니라 래퍼 객체의 참조 주소를 비교하기 때문입니다.
// 비교 대상인 래퍼는 객체이므로 서로의 참조 주소가 다릅니다. 객체끼리의 비교를 하려면 내부의 값만 얻어 비교해야 하기에 equals를 사용해야 합니다.
// 래퍼 클래스와 기본자료형과의 비교는 == 연산과 equals연산 모두 가능합니다. 그 이유는 컴파일러가 자동으로 오토박싱과 언박싱을 해주기 때문입니다.
Wrapper Class
primitive type을 객체로 다루기 위해 사용하는 클래스
Boxing & UnBoxing
기본 타입의 값을 포장 객체로 만드는 과정을 박싱이라고 하고 반대로 포장객체에서 기본타입의 값을 얻어내는 과정을 언박싱이라고 한다.
AutoBoxing &AutoUnBoxing
int타입의 값을 Integer클래스 변수에 대입하면 자동 박싱이 일어나 힙 영역에 Integer객체가 생성된다.