티스토리 뷰

1. 기본 타입 (Primitive type)

정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말하고 원시 타입이라고도 부른다.

  • 정수형 : byte, short, int, long
  • 실수형 : float, double
  • 문자형 : char
  • 논리형 : boolean

실제 데이터 값을 저장하는 타입이다.

 

2. 참조 타입 (Reference type)

간단하게 말하자면 기본 타입을 제외한 타입들을 말한다. 객체의 주소를 저장하는 타입이다.

 

ex) 문자열, 배열, 열거, 클래스, 인터페이스

 

Java에서 실제 객체는 Heap 영역에 저장되며 참조 타입 변수는 스택 영역에 실제 객체들의 주소를 저장하여 객체를 사용할 때마다 참조 변수에 저장된 객체의 주소를 불러와 사용하는 방식이다.

 

Stack 영역

지역 변수, 파라미터, 리턴 값, 연산에 사용되는 임시 값등이 생성되는 영역이다. 메소드를 호출할 때마다 스택 영역이 생성되고, 기본 타입 변수나 참조 타입 변수가 쌓이고 사라지고 반복한다.

기본 타입 변수의 경우에 int a = 10; 이라는 코드를 작성했다면 정수 값이 할당될 수 있는 a라는 이름의 메모리 공간이 스택 영역에 생성되고 10이라는 값이 들어간다.

참조 타입 변수의 경우에는 클래스 Person p = new Person(); 이라는 코드를 작성했다면 p라는 이름의 메모리 공간이 스택 영역에 생성되고 생성된 p의 인스턴스는 Heap 영역에 생성된다.

스택 영역에 생성된 p는 Heap 영역에 생성된 p의 인스턴스 주소 값을 가지게 된다.

Heap 영역

new 키워드로 생성된 객체와 배열이 생성되는 영역이다. 메소드 영역에 로드된 클래스만 생성이 가능하고 가비지 컬렉터가 참조되지 않는 메모리를 확인하고 제거하는 영역이다.

 

3. 기본 타입과 참조 타입의 차이

1. Null 포함 가능 여부

기본 타입은 null을 담을 수 없지만 참조 타입은 가능하다.

2. 제네릭 타입에서 사용 가능 여부

마찬가지로 기본 타입은 제네릭 타입에서 사용할 수 없지만, 참조 타입은 가능하다.

3. 접근 속도, 메모리 양

기본 타입이 참조타입에 비해 접근 속도가 훨씬 빠르고 메모리 양도 훨씬 적게 사용한다.

 

 

참조 자료

 

원시타입, 참조타입(Primitive Type, Reference Type)

boolean저장 가능한 범위 true/ falseJava가 데이터를 다루는 최소 범위가 1 Byte 이기 때문에 낭비적이지만 1 Byte를 사용한다.charJava의 경우 Unicode를 사용, 동양의 글자의 경우 2 Byte 필요하기때문에 char

velog.io

 

 

JVM 구조와 자바 런타임 메모리 구조 (자바 애플리케이션이 실행될 때 JVM에서 일어나는 일, 과정

JVM(Java Virtual Machine) : 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체다. CPU나 운영체제(플랫폼)의 종류와 무관하게 실행이 가능하다. 즉, 운영체제 위에서 동작하는 프로세스로 자

jeong-pro.tistory.com

 

 

자바의 참조타입

자바의 데이터 타입 자바의 데이터 타입은 크게 기본 타입과 참조 타입으로 분류된다. 기본 타입(primitive type): byte, char, short, int, long, float, double, boolean 참조 타입(reference type): 배열 타

velog.io

 

반응형

'Programming > 자바 (Java)' 카테고리의 다른 글

자바 명명 규칙 (Java Naming Convention)  (0) 2021.01.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함