Java

기본형 변수와 참조형 변수 그리고 래퍼 클래스 변수

옴악핫세 2023. 4. 3. 15:32

기본형 변수

종류 : (1) 논리형 변수 (boolean), (2) 문자형 변수 (char), (3) 정수형 변수 (byte, short, int, long)

 

byte byteNumber = 127; // byte 는 -128 ~ 127 범위의 숫자만 저장 가능합니다.

short shortNumber = 32767; // short 는 -32,768~32,767 범위의 숫자만 저장 가능합니다.

int intNumber = 2147483647; // int 는 -21억~21억 범위의 숫자만 저장 가능합니다.

long longNumber = 2147483647L; // long 은 숫자뒤에 알파벳 L 을 붙여서 표기하며 매우 큰수를 저장 가능합니다.

float floatNumber = 0.123f; // float 는 4byte 로 3.4 * 10^38 범위를 표현하는 실수값
double doubleNumber = 0.123123123; // double 은 8byte 로 1.7 * 10^308 범위를 표현하는 실수값

 

참조형 변수

참조형 변수는 어느 공간에 특정 주소값에 저장된 변수를 말한다. (주소형 변수라고 부르기도 함)

참조형 변수는 실제 값이 아닌 원본값의 주소값을 저장

(1) 문자열 변수 와 (2) 기타로 분류 할 수 있다.

 

1. 문자열 변수 : String

2. 그외 : Object, Array, List...

  • 객체, 배열, 리스트와 같은 단일 저장공간에 담을 수 없는 값을 저장함

 

저장 관점에서 변수

  • 기본형 변수 : 원본값이 Stack 영역에 있습니다.
  • 참조형 변수 : 원본값이 Heap 영역에 있습니다.
    • Stack 영역에는 따로 저장 해둔 원본값의 Heap 영역주소를 저장합니다.
더보기

📌 Stack 영역 vs Heap 영역

  • Stack의 경우에는 정적으로 할당된 메모리 영역입니다.
    • 그래서, 크기가 몇 byte 인지 정해져있는 기본형 변수를 저장합니다.
    • 추가로, 크기가 정해져있는 참조형 변수의 주소값도 저장합니다.
  • Heap의 경우에는 동적으로 할당된 메모리 영역입니다.
    • 그래서, 크기가 계속 늘어날 수 있는 참조형 변수의 원본을 저장합니다. </aside>

 

 

래퍼 클래스 변수

기본형 변수를 클래스로 한번 감싸는 변수

  • 래퍼 클래스를 사용하는 이유?!
    • 래퍼 클래스로 변수를 관리하면 객체지향의 많은 기능을 사용 할 수 있음
// 박싱 VS 언박싱

// 박싱
// Integer 래퍼 클래스 num 에 21 의 값을 저장
int number = 21;
Integer num = number; //boxing

// 언박싱
int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다.

 

 

ㅇㄹ