<aside> 💡 목표 자바가 제공하는 다양한 연산자를 학습하세요.
</aside>
<aside> 💡 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자
</aside>
프로그램에서 데이터를 처리하여 결과를 내는 것을 연산(Operation) 이라 하고 연산에서 사용되는 기호를 연산자(Operator) 라 하고 연산된 데이터는 피연산자(Operand) 라 한다. 연산자와 피연산자를 이용하여 연산과정을 기술한 것을 연산식(Expressions) 라 한다.
+ , - , * , / , %
일반 수학에 사용되는 것과 같은 방식으로 산술식에서 사용
boolean 타입을 제외한 모든 기본 타입에서 사용할 수 있다.
+ : int a = 1 + 2 //덧셈 연산
- : int b = 2 - 1 //뻴셈 연산
* : int c = 3 * 4 //곱셈 연산
/ : int d = 6 / 2 //나눗셈 연산
% : int e = 8 % 3 //나머지 연산
피연산자의 타입이 동일하지 않을 경우 피연산자의 타입을 일치시킨 후 연산한다.
byte + byte -> int + int // 정수형 보다 작은 타입일 경우 int로 변환되어 연산
int + long -> long + long // long 타입이 있을 경우, 모두 long 타입으로 변환되어 연산
int + float -> float + float // 실수형이 있을경우, 크기가 큰 실수형으로 변환되어 연산
byte b1 = 1; byte b2 = 2;
byte b3 = b1 + b2; // Type mismatch: cannot convert from int to byte 오류 발생
int b3 = b1 + b2; // int 타입으로 산출해야 한다. JVM이 기본 32bit단위로 계산하여 정수타입은 int 결과가 나온다.
& , | , ^ , ~ , << , >> , >>>
데이터를 bit 단위로 연산하는 연산자. 0과 1이 피연산자로 정수 타입만 비트 연산
비트 논리 연산자 & , | , ^ , ~
: 0과 1을 연산하는 연산자
( & )
1 AND 1 만 1, 나머지는 모두 0
두 비트가 모두 1인 경우만 1( | )
0 OR 0 만 0, 나머지는 모두 1
두 비트중 하나만 1이면 1( ^ )
0 XOR 0, 1 XOR 1 이면 0, 나머지는 모두 1
두 비트가 동일하면 0, 두 비트중 하나는 1이고 다른 하나가 0이면 1( ~ )
0은 1, 1은 0
비트 반전 (보수)
최상위 비트를 포함한 모든 비트가 반전되어 부호가 반대인 값이 산출비트 이동 연산자 << , >> , >>>
: 비트를 좌/우로 이동하는 연산자
<<
)
a << b
정수 a의 각 비트를 b만큼 왼쪽으로 이동. 밀려난 오른쪽 비트는 버려지고 왼쪽 비트는 0으로 채워진다.>>
)
a >> b
정수 a의 각 비트를 b만큼 오른쪽으로 이동. 밀려난 왼쪽 비트는 버려지고 오른쪽 비트는 최상위 부호 비트로 채워진다. (음수면 1, 양수면 0)