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 |