KB IT's Your Life/Java
Java [03] 연산자
지식보부상님
2025. 4. 21. 16:19
[1] 부호 / 증감 연산자
◈ 부호 연산자
◈ 증감 연산자
[2] 산술 연산자
◈ 산술 연산자
[3] 오버플로우와 언더플로우
◈ 오버플로우 / 언더플로우
- 오버플로우 (overflow) : 타입 허용 최대값 벗어나는 것
- 언더플로우 (underflow) : 타입 허용 최솟값 벗어나는 것
- 자바에서 오버/언더플로우가 발생하면 해당 타입의 최대/최소값으로 되돌아감 (오류x)
[4] 산술 연산
◈ 정수 연산
- 정확한 산술 연산을 위해선 정수 연산을 하는 것이 좋음
더보기
public class AccuracyExample{
public static void main(String[] args){
int x = 1;
double y = 0.1;
double result = x - 5*y; // result = 0.5 기대
System.out.println(result); // 0.4999999999 가 출력됨
}
}
[5] Nan, Infinity
◈ 나눗셈 연산의 예외
- ArithmeticException: x % 0 또는 x / 0 의 경우 발생하는 예외 ( int / 0 또는 int % 0 )
- Infinity: x / 0.0 또는 실수 / 0
- NaN: x % 0.0 또는 실수 % 0
◈ isInfinite(), isNan()
- boolean result = Double.isInfinite(x); : Infinity면 true, 아니면 false 반환
- boolean result = Double.isInfinite(x); : NaN이면 true, 아니면 false 반환
[6] 비교 연산자
◈ 비교 연산자
- 문자열을 비교할 때는 equals() 나 !equals() 이용해야 함
- 타입이 다른 비교 연산은 연산 수행 전 자동으로 타입 일치됨 (float, double 제외)
'A' == 65 // true
3 == 3.0 // true
0.1f == 0.1 // false (부동 소수점 때문)
[7] 논리 연산자
◈ 논리 연산자
[8] 비트 논리 연산자
◈ 비트 논리 연산자
[9] 비트 이동 연산자
◈ 비트 이동(shift) 연산자
[10] 대입 연산자
◈ 대입 연산자
[11] 삼항(조건) 연산자
◈ 삼항 연산자
- ? 앞의 조건식은 boolean 변수 또는 조건식이어야 함
[12] 연산의 방향과 우선순위
◈ 연산 방향 및 우선순위