안녕하세요 .
국비 기록용으로 남길려고합니다
참고 하실때 도움되셨으면좋겠습니다 ..!(너무믿지 말아주세요 ...)
데이터 오버플로우
데이터 오버플로우는 자료형의 범위가있는데 그범위를 넘어갔을시 제대로된 값이 표시가안되고 엉뚱한 숫자가표시되는경우 데이터 오버플로우 라고한다.
기본 자료형 데이터 범위
데이터 오버플로우 예제
간단하게 설명하자면 byte의 값의 범위는 -128 ~ 127 입니다 .
근데 byte의 자료형에 128을 대입하게되면 byte의 범위를 넘치게되어 128이 출력이안되고 다른값으로출력이됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package com.test;
public class Test {
public static void main(String[] args) {
//데이터 오버플로우
byte bNum = (byte)128; //형변환 써준이유는 byte의 범위가 -128 ~ 127인데 넘치게되어서 (형변환) 표시해주었습니다.
System.out.println("bNum : " + bNum);
byte bNum2 = (byte)250;
System.out.println("bNum2 : " + bNum2);
}
}
|
cs |
bNum 값이 128이 아니라 -128이 나왔는데요.
byte의 값 범위가 -128 ~ 127 인데 127 + 1 하면 128이아닌 최소값인 -128이 나옵니다.
범위를 동그라미로 생각하면될것같습니다.
bNum2 도 같은원리입니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
JAVA - 조건문(if, else, else if, switch) (0) | 2021.05.13 |
---|---|
JAVA - 연산자 (0) | 2021.05.12 |
JAVA - 형변환(명시적, 묵시적) (0) | 2021.05.12 |
JAVA - 상수 (0) | 2021.05.12 |
JAVA - Scanner 클래스 (0) | 2021.05.11 |