<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을 연산하는 연산자

비트 이동 연산자 **<< , >> , >>>** : 비트를 좌/우로 이동하는 연산자