Primitive type vs Reference type

code_able·2023년 11월 25일
0
post-custom-banner

자바의 데이터 타입은 크게 Primitive type과 Reference type으로 나뉜다.

Primitive type

정수, 실수, 문자, 논리 리터럴 등의 실제 데이터를 저장하는 타입
반드시 사용하기전에 선언 되어야 한다.

  • int, long, double, float, boolean, byte, shot, char

Reference type

객체를 참조한는 타입으로 메모리 주소값을 통해 참조하는 타입이다.
java에서 최상위 클래스인 java.lang.Object 클래스를 상속하는 모든 클래스들을 말한다.
java에서 실제 객체는 heap에 저장되며 참조 타입 변수는 스택 메모리에 주소를 저장하여 객체를 사용할 때 마다 참조변수에 저장된 객체의 주소를 불러와 사용하는 방식이다.
이 후 garbage collector가 돌면서 메모리를 해제한다.

  • Integer, Long, Double, Float, Boolean, Byte, Short, Char

차이

  1. Primitive type은 null을 담을 수 있으며 Reference type은 불가능 하다.
  2. Primitive type 제네릭 사용을 할수 없으며 Reference type 가능하다.

String은 equals로 비교하는 이유

파이썬을 하다 자바로 넘어가면 계속 헷갈리는 것이다.
앞어 말했듯 String은 Reference type으로 다른 객체를 사용하며 이는 참조하는 값이 다르다는 것이다.
그래서 ==을 쓰고 왜 안돼 ㅠㅠ 했던 나 자신이 앞으로 꼭 알아둬야 하는 개념이 바로 Primitive type과 Reference type다.

profile
할수 있다! code able
post-custom-banner

0개의 댓글