>  기사  >  Java  >  긴 변수에 할당할 때 Java에서 \"int 유형의 리터럴 xyz가 범위를 벗어났습니다\"가 발생하는 이유는 무엇입니까?

긴 변수에 할당할 때 Java에서 \"int 유형의 리터럴 xyz가 범위를 벗어났습니다\"가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-01 05:41:27881검색

Why Does Java Throw

"int 유형의 리터럴 xyz가 범위를 벗어났습니다" 수정

Java에서 데이터 유형으로 작업할 때 해당 유형을 이해하는 것이 중요합니다. 값 범위. 그러나 long 변수에 값을 할당하는 경우에도 "The literal xyz of type int is out of range"라는 오류가 발생할 수 있습니다.

이 문제를 해결하려면 int 유형을 명시적으로 지정하는 것이 핵심입니다. 가치. Java에서는 최대 2^31-1의 정수 값을 int로 표현할 수 있지만 더 큰 값에는 long이 필요합니다. 그러나 Java는 달리 명시적으로 지정하지 않는 한 암시적으로 숫자 리터럴을 int로 해석합니다.

귀하의 경우 코드는 testLong이라는 긴 변수에 2^63-1보다 큰 값을 할당합니다. 리터럴 9223372036854775807이 int의 범위를 초과하므로 컴파일러는 이를 int의 범위를 초과하므로 오류로 이어집니다.

이 문제를 해결하려면 숫자 리터럴 끝에 대문자 L을 추가하면 됩니다. 긴 값:

<code class="java">long testLong = 9223372036854775807L;</code>

리터럴 유형을 명시적으로 지정하면 컴파일러가 리터럴을 적절한 데이터 유형에 올바르게 할당하도록 할 수 있습니다. 이 방법은 잠재적인 오류를 피하기 위해 데이터 유형의 최대값 또는 최소값에 가까운 리터럴로 작업할 때 특히 중요합니다.

위 내용은 긴 변수에 할당할 때 Java에서 \"int 유형의 리터럴 xyz가 범위를 벗어났습니다\"가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.