Backend/Java
Java - 형변환(Casting) 및 오버플로우(overflow), 언더플로우(underflow)
퐁고
2023. 2. 12. 21:41
반응형
형 변환(Casting)이란?
- 값의 타입(data type)를 다른 타입으로 변환하는 것
- 자동 형변환(묵시적)
- 작은 타입이 큰 타입에 저장되는 경우 byte → int
- 강제 형변환(명시적)
- 큰 타입이 작은 타입에 저장되는 경우 int → byte 손실 발생
문자열 타입을 기본타입으로 변환
- Integer.parseInt();
- Double.parseDouble(); 등등..
기본 타입을 문자열로 변환
- String.valueof();
- Integer.toString();
오버플로우
- 타입이 허용하는 최대값을 벗어나는 것
언더플로우
- 타입이 허용하는 최소값을 벗어나는 것
오버플로우, 언더플로우가 실행되면 실행 에러가 되지않고 해당 정수 타입의 최소값 혹은 최대값으로 되돌아간다.
// 오버플로우
byte valueOver = 127; (1byte = 8bit, -2의 8승 <= 값 <= 2의 8승 - 1)
valueOver++;
System.out.println(valueOver);
// 언더플로우
byte valueLower = -128;
valueLower--;
System.out.println(valueLower);
위에 오버플로우가 된 valueOver의 값은 byte의 최소값인 -128,
언더플로우가 된 valueLower의 값은 byte의 최대값인 127이 출력된다.