+ 연산자: 피연산자의 부호를 유지 (실제로 거의 사용되지 않음)- 연산자: 피연산자의 부호를 반전 (양수는 음수로, 음수는 양수로)⚠️ 주의할 점: 연산 결과의 타입 변환
정수 타입(byte, short)의 부호 연산 결과는 무조건 int 타입이 된다. 자바 가상 머신(JVM)이 연산을 수행할 때 기본적으로 32비트(int) 단위로 처리하기 때문이다.
byte b = 100;
// byte result = -b; // 컴파일 에러 발생!
int result = -b; // int 타입에 담아야 함
정수와 실수 타입 모두에 사용할 수 있다.
| 연산자 | 의미 | 설명 |
|---|---|---|
++피연산자 |
전위 증가 | 다른 연산을 수행하기 전에 값을 1 증가 |
피연산자++ |
후위 증가 | 다른 연산을 수행한 후에 값을 1 증가 |
--피연산자 |
전위 감소 | 다른 연산을 수행하기 전에 값을 1 감소 |
피연산자-- |
후위 감소 | 다른 연산을 수행한 후에 값을 1 감소 |
int x = 10;
int y = 10;
// 전위 연산: x를 먼저 1 증가시키고, 그 결과를 result1에 대입
int result1 = ++x;
// 결과: x = 11, result1 = 11
// 후위 연산: y의 현재 값(10)을 result2에 먼저 대입하고, 그 다음 y를 1 증가시킴
int result2 = y++;
// 결과: y = 11, result2 = 10
증감 연산자가 복잡한 수식(예: z = ++x + y++)에 섞여 있으면 코드의 가독성이 급격히 떨어지고 실수를 유발하기 쉽다. 실무에서는 가급적 증감 연산자를 독립된 라인에서 사용하는 것이 좋다.
// 비권장
int z = ++x + y++;
// 권장 (의도가 명확함)
++x;
int z = x + y;
y++;
int 타입이다.final)에는 사용할 수 없다.