#02. JAVA_자료형과 캐스팅
자료형이란 변수에 저장할 값의 종류를 의미한다고 생각하면 쉽다. 자료형에 대해 자세히 설명하기 전에 변수란, 특정값을 저장하기 위한 공간이다. 변수를 선언할 때는 자료형 변수명; 이러한 방법을 이용한다. 생성된 변수에 처음으로 값을 대입하는 것을 초기화라고 하는데 초기화는 변수명 = 값; 이런 식으로 한다. 변수 선언과 초기화를 한 번에 할 수 있는데 이는 다음과 같다.
자료형 변수명 = 값;
자바에서 자료형의 종류는 총 8가지이다.
| 논리형 | boolean | 1bit |
| 문자형 | char | 2byte(1byte = 8bit) |
| 정수형 | byte | 1byte |
| short | 2byte | |
| int | 4byte | |
| long | 8byte | |
| 실수형 | float | 4.n byte |
| double | 8.n byte |
변수명은 마음대로 만들 수 있지만 몇 가지 규칙이 있다.
1) 변수명은 숫자로 시작할 수 없다.
2) _를 제외하고 특수문자를 포함할 수 없다.
3) 변수명은 반드시 소문자로 시작한다.
논리형(boolean)은 참, 거짓의 데이터를 저장하는 자료형이다.
문자형은 작은 따옴표 안에 한 글자만 저장할 수 있는 자료형이다.
정수, 실수형은 각각 정수와 실수(소수점을 포함하는 값)를 저장할 수 있는 자료형이다.
정수형, 실수형에서 바이트 크기가 클 수록 대입할 수 있는 값의 크기도 커진다.
변수를 선언하고 초기화하는 몇 가지 예를 들면 아래와 같다.
public static void main(String[] args){
boolean bo = true; //논리형
char ch = 'A'; //문자형
char ch02 = 65+1; //***아스키코드값을 참고해 숫자를 문자로 바꿈
int n = 111;
long lo = 2000L; //long을 사용할 때는 ;앞에 L을 써줘야함
float f = 0.1f; //float을 사용할 때는 ;앞에 f을 써줘야함
double d = 0.2;
}
캐스팅의 종류는 총 두 가지인데, 프로모션 캐스팅(promotion casting)과 디모션 캐스팅(demotion casting)으로 나뉜다.
promotion casting
프로모션 캐스팅은 큰 자료형에 작은 자료형을 대입하는 것으로, 자동으로 일어난다. 예를 들면 아래와 같다.
public static void main(String[] args) {
double d = 100.5; //8byte
int n = 200; //4byte
d = n;
System.out.println("d : " + d); //출력값은 200이다.
}
demotion casting
디모션 캐스팅은 작은 자료형에 큰 자료형을 대입하는 것으로, 자동으로 일어나지 않는다. 따라서 디모션 캐스팅은 아래와 같은 방식으로 한다.
public static void main(String[] args) {
float f = 5.5f;
int n = 3;
n = (int)f; // 디모션 캐스팅의 방법
System.out.println(n); //출력값은 5
}
위의 코드를 봤을 때, n 에 f 값을 대입했는데 왜 출력 결과는 5가 나오는 것인지 의문을 가질 것이다. 디모션 캐스팅의 단점은 바로 값이 손상될 수 있다는 것이다. 이 점을 주의하여 캐스팅을 해야 한다.