Search

Chapter02. 변수와 타입

생성일
2021/01/11 11:10
태그

변수

변수란?

단 하나의 값을 저장할 수 있는 메모리 공간이다.

변수의 선언

어떤 타입의 데이터를 저장할 것인지 + 변수의 이름이 무엇인지 결정
Search
작성 규칙
예시
priceisVeryExpensiveSoImSad
int double true return private
COUNT5
변수는 선언된 블럭 내에서만 사용이 가능하다.

변수의 사용

변수의 저장

대입 연산자 ( = ) 을 사용하여 변수에 값을 저장
변수를 선언하고 처음 저장하는 값 : 초기값
변수에 초기값을 저장하는 행위 : 초기화
변수에 직접 입력된 값 : 리터럴 ( 정수, 실수, 문자(열), 논리 )
char a = 'A' // a 라는 변수를 선언 // 'A' 라는 문자 리터럴 값으로 초기화 // 'A' 는 변수 a 의 초기값
Java
복사

변수값 읽기

초기화 되지 않은 변수는 값을 읽을 수 없다→ 컴파일 에러 발생

변수의 사용 범위

변수는 선언된 중괄호 안에서만 사용이 가능하다.
메소드 내에서 선언된 변수는 메소드 종료와 함께 메모리에서 없어진다.

데이터 타입

데이터 타입에 따라 저장할 수 있는 값의 종류와 크기가 다르다.

기본 타입

리터럴을 직접 저장하는 타입

정수 타입

byte
1 바이트 ( 8 )
1 0 0 0 0 0 0 0 ~ 0 1 1 1 1 1 1 1
-128 ~ 127
127 + 1 = -128
char
2 바이트 ( 16 )
유니코드
0 ~ 2^16-1
공백으로 초기화
char a = ' '
Java
복사
short
2 바이트 ( 16 )
-2^15 ~ 2^15-1
int
4 바이트 ( 32 )
-2^31 ~ 2^31-1
연산을 하는 기본 타입
long
8 바이트 ( 64 )
-2^63 ~ 2^63-1
초기화 시 정수 뒤에 l , L 을 붙인다.
long number = 10L;

실수 타입

부동 소수점
1.2345 = 0.12345 * 10^1
0.12345 : 지수
10^1 : 가수
float
4 바이트 ( 32 )
부호 1 + 지수 8 + 가수 23
초기화 시 실수 뒤에 f, F 를 붙인다.
double
8 바이트 ( 64 )
부호 1 + 지수 11 + 가수 52
실수 리터럴의 기본 타입
double이 더 정밀하다

논리 타입

boolean
1 바이트 ( 8 )
true
false

타입 변환

데이터 타입을 다른 타입으로 변환

자동 타입 변환

작은 크기의 데이터 타입이 큰 크기의 데이터 타입으로 자동 변환
byte < short < int < long < float < double
Java
복사
float 은 long 보다 메모리 크기는 작지만 표현 가능한 값의 크기가 더 크다.
char 는 byte 보다 메모리 크기는 크지만 음수는 갖을 수 없다.
byte byteValue = 1; int intValue = byteValue; intValue = 2; byteValue = intValue; intValue = 255; byteValue = intValue;
Java
복사

강제 타입 변환

큰 크기의 데이터 타입을 작은 크기의 데이터 타입으로 강제 변환
캐스팅
캐스팅 연산자 ( )
intValue = 2; byteValue = (byte)intValue; intValue = 255; byteValue = (byte)intValue;
Java
복사
실수 타입을 정수 타입으로 캐스팅 시, 소수점 이하는 버려짐
변환 후의 데이터 타입의 최소값과 최대값을 벗어나는지 반드시 검사해야함

연산식에서의 자동 타입 변환

int 타입보다 작은 타입의 피연산자는 int 로 타입 변환
피연산자를 4 바이트 단위로 저장하기 때문에
두 피연산자 중 더 큰 타입으로 변환
연산의 결과도 더 큰 타입으로 저장
int intVal = 10; double doubleVal = 10.0; double result = intVal + doubleVal;
Java
복사
큰 타입을 캐스팅하여 작은 타입으로 연산 가능
데이터 손실 등 고려
int result = intVal + (int)doubleVal;
Java
복사