Java - Reference type

iseon_u·2022년 4월 11일
0

Java

목록 보기
7/77
post-thumbnail

Reference type 참조 타입


기본 타입

특징

  • 정수, 실수 ,문자, 논리 타입
  • 리터럴을 직접 저장하는 타입
  • 변수에 실제 값 (리터럴) 을 저장한다.

변수

  • 스택 영역에 변수가 생성되고 변수 값에 리터럴 값 그대로 저장

참조 타입

특징

  • 기본 타입을 제외한 배열, 열거, 클래스, 인터페이스 등
  • 객체의 번지를 참조하는 타입
  • 변수에 객체의 번지 (주소) 를 저장한다.

변수

  • 스택 영역에 변수가 생성되고 힙 영역에 객체를 생성
  • 변수 값엔 객체 번지가 저장 (스택)
  • 객체 값엔 참조 타입이 저장 (힙)

기본 타입과 참조 타입 비교

// 기본 타입 변수
int a = 10;
double b = 20;

// 참조 타입 변수
String name1 = "n_u";
String name2 = "n_u";
String name3 = new String("n_u"); // new 메모리 할당 연산자

name1 == name2 // true 변수 값에 같은 번지 값
name2 == name3 // false 변수 값에 다른 번지 값

name2.equals(name3) // true String 객체의 문자열만 비교시 equals() 메서드 사용

메모리 구조


스택 영역

  • LIFO (Last In First Out) 후입선출
  • Push insert 삽입
  • Pop delete 삭제
  • 메서드의 지역변수나 매개변수들이 저장 되는 메모리

기본 타입 변수

a10
b20.0

참조 타입 변수

name1100 (번지)
name2100 (번지)
name3200 (번지)

문자열 리터럴이 동일하면 동일한 객체 참조


힙 영역

객체객체 값
100 번지n_u
200 번지n_u

profile
🧑🏻‍💻 Hello World!

0개의 댓글