Primitive Type
VS Wrapper Class
차이Stack 저장공간
이자 값 그 자체를 담고있음 (메타포 : 금괴를 손에 쥐고 있음) @Test
public void test() {
Integer i = 5;
assertThat(i).isEqualTo(5); // i는 5이지만
assertThat(System.identityHashCode(i)).isNotEqualTo(5); // 메모리 관점에서는 다르다
}
PK에는 Long
(Wrapper Class) 을 사용한다
판단기준은 Null을 원천봉쇄 하느냐 아니냐의 차이인데, 일부 필드에서 primitive Type 도 사용하고 있다.
original from : Link
Immutable : Wrapper Classes 는 근본적으로 Immutable (변경 불가능한) 객체이고 Object 이므로 +1, ++ 같은 사칙연산이 안되는게 원칙이지만, 이걸 인식하지 않고 쓸수 있는 이유는 Java 에서 AutoBoxing/Unboxing 이 지원되고 Equals, HashCode를 재정의해놓았기 때문
이 말의 의미가 잘 이해가 되지 않는데요. Wrapper Class가 근본적으로 immutable하다는 것은 혹시 어떤 의미일까요?
Immutable : Wrapper Classes 는 근본적으로 Immutable (변경 불가능한) 객체이고 Object 이므로 +1, ++ 같은 사칙연산이 안되는게 원칙이지만, 이걸 인식하지 않고 쓸수 있는 이유는 Java 에서 AutoBoxing/Unboxing 이 지원되고 Equals, HashCode를 재정의해놓았기 때문
이 말의 의미가 잘 이해가 되지 않는데요. Wrapper Class가 근본적으로 immutable하다는 것은 혹시 어떤 의미일까요?
와 정리 해주신 내용 잘봤습니다!! 감사합니다 👍