728x90
암시적 형변환의 규칙은 아래와 같다.
*reference - https://opentutorials.org/course/1223/5330
float->double 로 가는 경우 4 byte -> 8 byte 인데 암시적 형 변환이 가능한지에 대해서 의문이 생길 수 있다.
역으로 형변환을 할 시 byte 패딩을 제거하며 변환되기 때문에 값이 변질될 수 있습니다.
자료형의 메모리 공간 크기를 기준으로 변환하는 것이 아닌, 값의 표현 범위를 기준으로 변환하기 때문에 가능하다.
byte a = 15;
short b = a; //암시적 형 변환
명시적 형변환
구문
[자료형] [변수명] = (자료형)[변수명 또는 리터럴];
int a = (int) 300000000000L;
long b = 12345;
int a = (int)b;
float a = 3.14213123F;
// 단정도(4 byte) 부동소수점을 정수로 변환
int b = (int)a;
// 변수 b에 실제로 저장된 값 : 3
연산시 형 변환
정수형
short a = 70;
short b = 80;
a+b; // 정수형 끼리의 산술 연산을 4 byte 정수형으로 암시적 현 변환된다.
// 즉, short sum = a+b; 가 아닌
int sum = a+b; //이다.
정수와 float 산술
float a = 7.0F;
int b = 8;
float sim = a+b;
//4 byte 실수형으로 암시적 형 변환
정수와 double 산술
double a = 7.0;
int b = 8;
double sim = a+b;
//8 byte 실수형으로 암시적 형 변환
728x90
'Java' 카테고리의 다른 글
[Java] "== vs equals" (0) | 2022.05.27 |
---|---|
[Java] 스코프(scope) : { } (0) | 2022.05.20 |
[Java] 상수, 리터럴 (0) | 2022.05.10 |
[Java] 전역(glpbal)변수, 정적(static)변수 (0) | 2022.03.25 |
[Java] 리플렉션 (0) | 2022.03.15 |
댓글