본문 바로가기
Java/Java

데이터 오버플로우 (Data Overflow)란?

by 박채니 2022. 2. 25.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


Data Overflow란?

- 각 타입 별 최대값을 넘어서면 최소값으로 떨어지는 현상

 

public void test3() {
		int i = Integer.MAX_VALUE;
		System.out.println(i);
		
		i = i + 1;
		System.out.println(i);
	}

@콘솔출력값
2147483647
-2147483648

위와 같이 int형의 최대값을 출력해보았고, +1을 해보았습니다.

그런데 결과 값은 최대값 그리고 +1을 했는데 최소값이 나온 것을 확인할 수 있습니다.

 

이러한 결과가 나오는 이유는 무엇일까?

쉽게 말하자면, 표현할 수 있는 자리수 (공간)는 정해져있는데 해당 범위를 넘어가버리니까 최소값으로 표현됩니다.

 

우리의 일상 중에서도 익숙한 전자 시계를 보면 확실히 이해할 수 있을 겁니다.

시계의 최대값은 23:59 이고 1분이 추가되었을 때 시계는 24:60으로 나오지 않고 표현할 수 있는 가장 최소값인 00:00으로 바뀝니다.(물론 24:00으로 표현 되는 시계도 보긴 했지만, 일반적인 시계로 예를 들자면요 ^^)

 

이러한 현상과 비슷하다고 생각하다면 위의 구조를 쉽게 이해할 수 있을 것입니다.