02-08.1 기본형 개념
- 형변환(Casting): 변수 또는 리터럴의 형을 다른 형으로 변환하는 것을 말한다. (묵시적 형변환 / 명시적 형변환)
- 2byte: short/ character
- 4byte: int
- 8byte: long
Note) long(8byte)와 float(4byte) 중에서 무엇이 더 클까?
- float가 더 크다.
- 실수는 소수점 뒤까지 자릿수가 필요하므로 실수를 더 큰 형으로 인식한다.
02-08.2 int형 값을 long형에 넣는 경우
Ex)
<hide/>
public class TypeCastingExam {
public static void main(String args[]) {
int x = 50000;
long y = x; // int보다 큰 long형 변수
System.out.println(y);
}
}
- long 보다 작은 int 형을 넣을 때 자연스럽게 형변환이 일어나며 컴파일 오류가 나지 않는다.
- 이를 "묵시적(암묵적) 형변환"이라고 한다. (작은 자료형을 큰 자료형으로 바꿀 때)
02-08.3 long값을 int형에 넣는 경우
Ex) 형변환 하기 전
<hide/>
public class TypeCastingExam {
public static void main(String args[]) {
int x = 50000;
long y = x; // int보다 큰 long형 변수
System.out.println(y);
long x2 = 5;
int y2 = x2;
System.out.println(y2);
}
}
Note) 출력 결과
- 02-08-2 경우와는 다르게 컴파일 에러가 발생한다.
- 컴파일 에러가 발생하지 않도록 "이 값을 int형에 담아도 좋다"라고 알려주어 형변환 해야 한다.
- 형변환 하려면 값을 넣기 전에 해당 형을 괄호 한에 넣어 준다.
- 이를 "명시적(강제적) 형변환"이라고 한다. (큰 자료형을 작은 자료형으로 바꿀 때)
Ex) 형변환 이후
<hide/>
public class TypeCastingExam {
public static void main(String args[]) {
int x = 50000;
long y = x; // int보다 큰 long형 변수
System.out.println(y);
long x2 = 5;
int y2 = (int)x2; // 명시적 형변환
System.out.println(y2);
}
}
Note) 출력 결과: 명시적 형변환 후에는 오류가 발생하지 않는다.
'Java > 모두의 자바' 카테고리의 다른 글
Chapter 02-10 비교 연산자 (0) | 2022.02.03 |
---|---|
Chapter 02-09 산술 연산자 (0) | 2022.02.03 |
Chapter 02-07 기본형 (0) | 2022.02.03 |
Chapter 02-06 상수 (0) | 2022.02.03 |
Chapter 02-05 변수 (0) | 2022.02.03 |