[Java] 변수와 타입

이지원·2024년 5월 1일

Java Study

목록 보기
1/9

변수 선언 및 초기화

Java에서는 변수는

int num;
num = 5;

와 같은 변수를 선언(int num;) 하고 초기화(num = 5;) 하는 과정으로 사용된다.

int num = 5;

물론, 위와 같이 변수 선언과 초기화를 한번에 하는 것도 가능하다.

코드에서 개발자가 직접 적은 5, 10.5, true와 같은 고정된 값을 *리터럴이라고 부른다.


변수를 선언하게 되면 어떤 일이 일어날까?

먼저, 컴퓨터에는 정보를 저장하는 메모리(RAM, ROM)가 있다. 변수를 선언하게 되면 변수에게 알맞은 메모리 공간(메모리의 주소)을 할당하게 된다.
메모리 공간을 할당해주는 작업은 대부분 OS와 컴파일러가 자동으로 처리준다.

변수 초기화는 어떤 일이 일어날까?

int num = 5;와 같이 변수에 값을 할당(초기화)하면 5 정수 리터럴을 위에서 선언한 변수의 공간에 저장하게 됩니다.

위의 그림은 변수 선언과 초기화에 대해 간략하게 그림으로 나타낸 것이다.


변수 타입

변수을 선언할 때 무조건 타입을 같이 적어줘야 한다. 또한, 앞에서 언급한 공간의 알맞은 크기는 변수의 타입이 결정한다.


정수 타입

변수 타입메모리 공간값의 범위
byte8 bit~128 ~ 127
short16 bit-32,768 ~ 32,767
char16 bit0 ~ 65535 (유니코드)
int32 bit-2,147,483,648 ~ 2,147,483,647 (대략 20억)
long64 bit-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (대략 900해)

정수 타입을 선언하고 값을 대입하는데 있어서 주의해야 할 것은

int num1 = 10;
long num2 = 10L;

와 같이 long 타입의 변수에 값을 대입할 때는 정수뒤에 L을 붙여야 된다는 것이다.
그 이유는 자바에서는 정수 리터럴을 기본적으로 int 타입으로 간주하기 때문에 long 타입으로 리터럴 값을 대입할 때에는 L을 붙여주어서 long 타입임을 명시해야 한다.

long num3 = 10;

위의 경우는 일반 long 타입에 int 타입을 대입해서 오류가 날 것 같지만 이는 컴파일러가 진행 시 int 타입을 자동으로 변환하여 대입시켜준다.
하지만, int의 범위가 벗어나는 정수를 L을 붙이지 않는다면 오류가 난다.


실수 타입

변수 타입메모리 공간값의 범위
float32 bit1.4E-45 ~ 3.4028235E38
double64 bit4.9E-324 ~ 1.7976931348623157E308
float num4 = 0.5f;
double num5 = 0.5;

정수 타입과 마찬가지로 실수의 기본 리터럴은 double형이기 때문에
float 타입에 값을 대입할 때에는 뒤에 f를 붙여주어야 한다.


논리 타입

변수 타입메모리 공간값의 범위
boolean8 bitstrue/false
boolean logic = true;

논리 타입의 선언은 위와 같이 할 수 있다.


profile
백엔드 개발자취

0개의 댓글