比如byte b = 1; char c = 1;,如果整数类型默认是int类型的话,那么byte b = 1;应该需要强转换才对,因为int是高精度的,但这里明显不报错,这是为什们呢?
byte b = 1; char c = 1;
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
우선 정수형의 기본값은 int입니다. 이것에 대해서는 의심의 여지가 없습니다. 두 번째로, 허용되는 유형 범위 내에서 여기 바이트: -128~127 그리고 정수 int 1이 이 범위에 있으면 컴파일러는 자동으로 상수의 하향 변환을 수행합니다. 상수가 이 범위를 초과하면 컴파일러가 직접 오류를 보고합니다.
Byte, short, char 및 boolean은 모두 하위 수준에서 int로 처리됩니다
틀렸습니다. 두 개의 정수가 int보다 작거나 같으면 기본값은 int입니다. 그 중 하나가 long이면 기본값은 long입니다.
두 개의 바이트 변수를 선언한 다음 이를 추가하고 다른 바이트 변수에 할당하려고 하면 컴파일러에서 오류 메시지가 표시되며 강제로 유형 변환이 필요합니다.
이 기사를 확인하세요: http://www.programgo.com/arti...
자동변환과 강제변환으로 나누어집니다
우선 정수형의 기본값은 int입니다. 이것에 대해서는 의심의 여지가 없습니다.
두 번째로, 허용되는 유형 범위 내에서 여기 바이트: -128~127
그리고 정수 int 1이 이 범위에 있으면 컴파일러는 자동으로 상수의 하향 변환을 수행합니다.
상수가 이 범위를 초과하면 컴파일러가 직접 오류를 보고합니다.
Byte, short, char 및 boolean은 모두 하위 수준에서 int로 처리됩니다
틀렸습니다. 두 개의 정수가 int보다 작거나 같으면 기본값은 int입니다. 그 중 하나가 long이면 기본값은 long입니다.
두 개의 바이트 변수를 선언한 다음 이를 추가하고 다른 바이트 변수에 할당하려고 하면 컴파일러에서 오류 메시지가 표시되며 강제로 유형 변환이 필요합니다.
이 기사를 확인하세요: http://www.programgo.com/arti...
자동변환과 강제변환으로 나누어집니다