☕ 자바 JAVA/☕ 변수와 자료형 Variables & Data Type

[JAVA]데이터타입 : 기본타입과 참조타입 (+ 차이점)

뉴이 NUEY 2023. 1. 8. 23:11
반응형
 

변수 Variables

변수타입 변수명 = (변수타입에 맞는)값; 자바의 기본 명령어 ; 는 명령의 끝을 의미 자바에서 = 는 대입을 의미 변수명은 int a = 0; 따라서 이 코드는 0을 a에 대입한다...는 의미입니다. 이제 변수

yeun-devlog.tistory.com

변수의 종류는 위 페이지를 참고해주세요.

이 페이지에서는 변수를 데이타 타입으로 분류해보겠습니다.

데이터 타입은 크게 기본 / 참조 두가지로 나뉜다.

데이터를 사용할 때 어느 메모리 영역을 사용하느냐에 따라 나뉩니다.

 

단순히 정리한 JVM구조와 Memory(+ static)

*설명하기에 앞서 JVM은 이 페이지에서 설명하는 것보다 복잡한 구조를 가지고 있음을 안내드립니다. Class / Heap / Stack 으로 나누어 코드의 흐름이 JVM에서 구조를 따라 어떻게 흘러가는 지 간단히

yeun-devlog.tistory.com

Heap과 Stack을 처음 들어보신다면 위 글로 JVM 의 구조를 간단히 알면 도움이 될 겁니다.

 

기본타입 = 원시타입 Primitive Type

기본타입은 Stack만 사용 하며, 여기에 실제 데이터 값을 저장합니다.

참조타입 Reference Type

참조타입은 HeapStack 을 사용합니다.

주소를 Stack에,

값은 Heap에 저장합니다.

String str = "stack영역";

만약 System.out.print(str) 로 참조변수 str 을 호출한다면

jvm은 stack에 저장된str이란 주소를 통해 heap에서 값을 가져옵니다.

참고로 참조타입 Class, Array, Enum, Interface 는 모두 객체입니다.

개인적으로 이해한 방법은(틀릴 수도 있습니다)
Stack은 바로 들어왔다가 사라지는 가벼운(기본타입의 값들은 가벼우니까요)  값들이 들어간다고 이해했습니다.

참조타입의 주소를 담는 것도, 참조타입의 값은 보통 크니까 Heap Memory에 담는 게 아닐까...

반응형