티스토리 뷰
이미 선언된 데이터 형을 다른 데이터 형으로 변환하는 것이다.
형변환에는 강제 형 변환과 자동 형 변환이 있는데,
자동 형 변환은 데이터 손실 없이 형 변환이 가능할 경우에 내부적으로 수행한다.
변수의 크기가 작은 쪽에서 큰쪽으로 형변환을 하는 것이라고 생각하면 될 듯.
변수의 크기
byte(1 byte) < short(2 byte) < int , float (4 byte) < long, double(8 byte)
위에 보면 작은 쪽에서 큰쪽으로 형 변환 할 때 내부에서 자동적으로 해주는 것을 볼 수 있다.
그렇다면 강제 형변환은? 반대로 큰쪽에서 작을쪽으로 데이터 타입을 변환해주는 것이다.
1 2 3 4 5 6 7 8 9 | public static void main(String[] args) { long a =2147483648L; int b = (int)a; short c = (short)b; System.out.println("a="+a+"b="+b+"c="+c); } | cs |
이렇게 int b= (int)a; 강제적으로 형 변환을 할 수 있다.
위 예제는 int 로 형변환 하는 과정에서 오버플로우가 발생하여 -2147483648로 바뀌고
short로 형 변환을 하여 c의 값은 0이 되겠다.
1 2 3 4 5 6 7 8 | public static void main(String[] args) { int a =97; char b= (char)a; byte c=(byte)b; System.out.println("a="+a+"b="+b+"c="+c); } |
위 예제를 보면 int형 에서 char 형, char형에서 byte형으로 형 변환이 된다는 것을 알 수 있다.
'Programming > Java' 카테고리의 다른 글
생성자(Constructor) (0) | 2018.05.22 |
---|---|
메소드(Method) (0) | 2018.05.22 |
클래스 (0) | 2018.04.25 |
상수(constant), 배열(Array) (0) | 2018.04.24 |
변수 (0) | 2018.04.24 |
댓글