본문 바로가기

수업 복습하기/Java

Day 10 - 기본타입과 참조타입

728x90
728x90

= 기본타입과 참조타입

 

= 기본타입이란?

정수, 실수, 문자(char), 논리(boolean) 값을 저장하는 데이터 타입

기본타입으로 선언된 변수는 실제 값이 변수 안에 저장된다.

 

= 참조타입이란?

객체의 주소를 참조하는 타입으로 배열, 클래스, 인터페이스 타입

참조타입으로 선언된 변수는 메모리의 주소값을 변수 안에 저장.

선언된 변수 - 스텍(stack)에 주소값을 저장, 실제 값은 힙(heap)에 저장.

 

※ 변수는 스택 영역에 생성, 객체는 힙 영역에 생성

 

+) 배열도 참조타입 중에 하나이고, 모든 클래스에는 데이터 타입이 가능하다.

 

- 자바는 문자열을 String 변수에 저장한다 라는 말은 틀린 표현!

why? 문자열은 String의 객체로 생성되고 변수는 String 객체를 참조하기 때문에~

<출력값>

홍길동
홍길동
홍길동
홍길동
true
false
false
문자열 자체가 같음
str3과 str4는 참조가 다름
str3과 str4는 문자열이 같음

 

+) 참조타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null값을 가질 수 있다.

따라서 String hobby = null; (가능)

ex) String hobby = "여행";

hobby null;

이 가능하다는 것이다.

이럴 때는 참조를 잃은 String객체를 JVM이 참조되지 않은 객체를 쓰레기 객체로 취급 후

Garbage Colletor를 구동시켜 메모리에서 자동삭제 시킨다 (저번시간의 내용과 함께 공부하기)

 

728x90

'수업 복습하기 > Java' 카테고리의 다른 글

Day 10 - 오버라이딩(Overriding)  (0) 2021.08.30
Day 10 - 상속(Inheritance)  (0) 2021.08.29
Day 10 - 패키지(Package)  (0) 2021.08.29
Day 09 - 생성자(Constructor)  (0) 2021.08.26
Day 09 - 객체와 클래스  (0) 2021.08.26