Java

TIL | Java - 기본타입 & 참조타입

개발 공부 2022. 10. 6. 17:01

기본타입

: byte, char, short, int, long, float, double, boolean

실제 값을 변수 안에 저장하는 데이터 타입

참조타입  : reference type

: 배열, 열거, 클래스, 인터페이스

객체의 주소를 참조하는 타입

(변수 안에 메모리의 주소값을 저장하는 타입)

*클래스도 데이터 타입이 될 수 있다.

 

참조 타입으로 선언된 변수는 스택(stack) 영역에 주소값을 저장하고,

내부의 실제 값힙(heap) 영역에 저장합니다.

 

스택 : stack 힙 : heap
   

 

참조타입 String과 객체 동등비교 메서드 equals()

string은 클래스다! 

new키워드를 사용해서 String객체를 직접 heap영역에 생성한다면 문자열의 내용이 같더라도 다른 주소값을 가지게 되므로

동등, 비동등 연산자(==, !=)의 결과가 false로 나오게 됩니다. (==으로 하면 주소가 동일하다는 의미)

그래서 동일 String객체이든 다른 String 객체이든 상관없이 문자열의 내용 값 그 자체를 비교할 때는 equals() 메서드를 사용해야 합니다.

String null 값에 .equals() 비교 메서드 쓰면 error

ex) String str3 = new String("Hello"); String str4 = new String("Hello");

--> str3 == str4 -> false

 

2022.10.06.thu / course12