[JAVA] 자료형

JUJU·2024년 1월 9일
0

자바에는 기본형(primitive type)과 참조형(ReferenceType)이 존재한다.

기본형

기본형은 을 저장하는 자료형이다.
기본형은 null 값을 가질 수 없다.

TypeBits
boolean1
byte8 (1 Byte)
char16 (2 Bytes)
short16 (2 Bytes)
int32 (4 Bytes)
long64 (8 Bytes)
float32 (4 Bytes)
double64 (8 Bytes)

※ boolean은 true, false만 존재한다.
※ char는 음수 값을 가질 수 없다.

기본형의 형 변환

  1. 자동 형 변환
    자동 형 변환의 조건: 표현범위가 좁은 자료형 -> 표현범위가 큰 자료형 만 가능하다.
    ex) byte는 short가 될 수 있지만, int는 short로 자동 형 변환이 불가능하다.
float f = 100.0; //ERROR!!!! 실수 상수는 기본적으로 double이다.
//연산은 피연산자의 타입이 같아야만 수행된다. --> 자동 형 변환
short s = 10;
int i = 20;

//short sum = s + i; ERROR!!!
int sum = s + i; //정수 연산일 경우 int 타입으로 자동 형 변환된다.


int num1 = 10;
double num2 = 11.52;
double result = num1 + num2; // num1이 double형으로 자동 형 변환되어 계산된다.
  1. 명시적 형 변환
    자동 형 변환이 적용되지 않는 경우에는 수동으로 형 변환을 한다.
float a = (float)100.0;
int num = (int)100.1234; // 100만 저장됨

※ 명시적 형 변환은 데이터의 손실이 발생할 수 있다.

참조형

참조형은 주소를 저장하는 자료형이다.
실제 값은 힙(heap)영역에 저장되고, 그 데이터의 주소가 스택(stack) 영역에 존재하는 참조형 변수에 저장된다.
실제 메모리 주소는 아님에 주의하자. Java에서 참조 변수는 객체의 실제 메모리 주소를 직접적으로 저장하지 않는다. 대신, 참조 변수는 객체가 힙 메모리에 할당된 위치를 가리키는 값(참조)를 가지고 있다.

TypeBits
배열 (array)32 (4 Byte)
열거 (enumeration)32 (4 Byte)
클래스 (class)32 (4 Bytes)
인터페이스 (interface)32 (4 Bytes)

※ 할당되는 메모리 크기는 4 Byte로 동일하다.
why? 객체의 주소값을 저장하기 때문이다.

참조형 각각의 자세한 설명은 이후에 포스팅 할 예정이다.

profile
개발자 지망생

0개의 댓글

관련 채용 정보