자바의 데이터 타입은 크게 Primitive type과 Reference type으로 나뉜다.
정수, 실수, 문자, 논리 리터럴 등의 실제 데이터를 저장하는 타입
반드시 사용하기전에 선언 되어야 한다.
객체를 참조한는 타입으로 메모리 주소값을 통해 참조하는 타입이다.
java에서 최상위 클래스인 java.lang.Object 클래스를 상속하는 모든 클래스들을 말한다.
java에서 실제 객체는 heap에 저장되며 참조 타입 변수는 스택 메모리에 주소를 저장하여 객체를 사용할 때 마다 참조변수에 저장된 객체의 주소를 불러와 사용하는 방식이다.
이 후 garbage collector가 돌면서 메모리를 해제한다.
파이썬을 하다 자바로 넘어가면 계속 헷갈리는 것이다.
앞어 말했듯 String은 Reference type으로 다른 객체를 사용하며 이는 참조하는 값이 다르다는 것이다.
그래서 ==을 쓰고 왜 안돼 ㅠㅠ 했던 나 자신이 앞으로 꼭 알아둬야 하는 개념이 바로 Primitive type과 Reference type다.