반응형
Java에서의 정수 자료형은 다음과 같다. byte, short, int long. 변수 선언시 이 네가지를 모두 하여도 된다. 하나의 예시를 들어보자. 나는 short형 자료형인 p, i라는 정수형 변수를 선언하고 short형 자료형인 result 변수에 p,i변수의 값을 합친것의 결과를 넣었다. 그 후 출력을 하면 오류가 나는것을 볼 수 있다. 왜그럴까? 그 이유는 자바는 기본적으로 정수형 연산을 int형으로만 진행하기 때문이다. 이말은 즉슨 위의 상황에서 p, i를 short형으로 선언한것은 딱히 상관이 없다. 하지만 result에는 결론적으로 p,i를 더했다는 '연산값'이 들어가는데, 이 연산하는 과정에서 자바는 자동으로 형변환을 하여 값을 넣는다. 결론적으로 두 변수를 더한 연산값은 int형, 4바이트지만 result변수는 short형, 2바이트크기의 변수이다. 즉 크기가 맞지 않기 떄문에 오류가 나는 것이다.
올바르게 출력을 하기 위해서는 더한값 결과를 넣는 변수인 result변수를 int형으로 선언해주면 되는것이다.
반응형
'Language > Java' 카테고리의 다른 글
접근 수준 지시자(Access-level Modifier) (0) | 2019.02.20 |
---|---|
정보 은닉(Information Hidding) (0) | 2019.02.20 |
Default Constructor (0) | 2019.02.16 |
Java long형 자료형에 대해서 (0) | 2019.02.15 |
Java와 C의 차이점 - 1 (0) | 2019.02.15 |