java 언어 버그

1159 단어 javase
나는 이 자바 언어의 버그가 모두가 알고 있다고 생각한다. 그러나 이 버그는 이라는 책에서 언급한 적이 매우 적은 것 같다.최신 버전 jdk1.8 환경, 코드:
int a = Integer.MAX_VALUE * 4;
System.out.println(a);

출력 결과: -4
int의 최대치는 2147483647입니다.Integer.MAX_VALUE의 값은 2147483647입니다.2147483647*4는 int의 범위를 훨씬 넘어섰지만 코드 컴파일기는 오류가 없고 실행할 때도 오류가 없고 결과를 출력했다.이 결과는 잘못된 것이다.
위의 문제는 무한사순환을 일으킬 수 있습니다. 코드:
int start = Integer.MAX_VALUE; 
int count = 0;        
for(int i=start;i<=start;i++){ 
    count++;
System.out.println("       :"+count); 
}

이것은 무한 사순환임을 알 수 있습니다. int는 영원히 2147483647보다 작습니다.i++가 최대치를 초과한 후에도 알림 오류도, 오류 보고도 없습니다.

좋은 웹페이지 즐겨찾기