티스토리 뷰

이미 선언된 데이터 형을 다른 데이터 형으로 변환하는 것이다.




형변환에는 강제 형 변환과 자동 형 변환이 있는데, 



자동 형 변환은 데이터 손실 없이 형 변환이 가능할 경우에 내부적으로 수행한다.


변수의 크기가 작은 쪽에서 큰쪽으로 형변환을 하는 것이라고 생각하면 될 듯.



변수의 크기

byte(1 byte) < short(2 byte) < int , float (4 byte) < long, double(8 byte) 



1
2
3
4
5
6
7
8
public static void main(String[] args) {
        
            
            byte a = 10;
            int b = a;
            double c = a;        
    }
 
cs


위에 보면 작은 쪽에서 큰쪽으로 형 변환 할 때 내부에서 자동적으로 해주는 것을 볼 수 있다.



그렇다면 강제 형변환은? 반대로 큰쪽에서 작을쪽으로 데이터 타입을 변환해주는 것이다.



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);
    }

cs



위 예제를 보면 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함