학습한 내용을 정리한 포스팅입니다. 직역된 부분이 있어 어색할 수 있습니다. 틀린 부분이 있다면 언제든 지적 해주시면 감사하겠습니다. 🙇🏻♀️
자바 연산자 (JAVA Operator)
자바에서는 여러 종류의 연산을 수행하기 위한 다양한 연산자를 제공한다.
| 산술 연산자 | 설명 |
|---|---|
+ | 왼쪽의 피연산자에 오른쪽의 피연산자를 더함 |
- | 왼쪽의 피연산자에 오른쪽의 피연산자를 뺌 |
* | 왼쪽의 피연산자에 오른쪽의 피연산자를 곱함 |
/ | 왼쪽의 피연산자에 오른쪽의 피연산자를 나눔 |
% | 왼쪽의 피연산자에 오른쪽의 피연자로 나눈 후 그 나머지를 반환 |
| 비트 연산자 | 설명 |
|---|---|
& | 대응되는 비트가 모두 1이면 1을 반환함(비트 AND연산) |
| OR | 대응되는 비트 중에서 하나라도 1이면 1을 반환함(비트 OR 연산) |
^ | 대응되는 비트가 서로 다르면 1을 반환함(비트 XOR 연산) |
~ | 비트를 1이면 0으로, 0이면 1로 반전 시킴(비트 NOT의 연산, 1의 보수) |
<< | 명시된 수만큼 비트들을 전부 왼쪽으로 이동 시킴(left shift 연산) |
>> | 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴(right shift 연산) |
>>> | 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며 새로운 비트는 전부 0이 됨 |
| 비교연산자 | 설명 |
|---|---|
| == | 왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 참을 반환함 |
| != | 왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함 |
| > | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 참을 반환함 |
| >= | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참을 반환함 |
| < | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 참을 반환함 |
| <= | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참을 반환함 |
| 논리연산자 | 설명 |
|---|---|
| && | 논리식이 모두 참이면 참을 반환함 (논리 AND 연산) |
| OR | 논리식 중에서 하나라도 참이면 참을 반환함 (논리 OR 연산) |
| ! | 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함 (논리 NOT 연산) |

인스턴스이름 instanceof 클래스 또는 인터페이스 이름boolean resultTrue = Long.valueOf(20) instanceof Number;
Assignment operator(대입 연산자)는 변수에 값을 할당하기 위해서 사용한다.
예시)
int x = 10;

(매개변수) -> {실행문}Runnable r = ()-> System.out.printf("Run method");
위의 람다식을 풀어쓴다면 아래와 같다.
Runnable r = new Runnable(){
@Override
public void run(){
System.out.print("Run method");
}
};
조건식 ? 반환값1 : 반환값2반환값1을 반환하고 결과값이 거짓이면 반환값2를 반환한다.| 우선순위 | 연산자 | 설명 | 결합 방향 |
|---|---|---|---|
| 1 | [] | 첨자 연산자 | 왼쪽에서 오른쪽 |
| . | 멤버 연산자 | 왼쪽에서 오른쪽 | |
| 2 | ++ | 후위 증가 연산자 | 왼쪽에서 오른쪽 |
| -- | 후위 감소 연산자 | 왼쪽에서 오른쪽 | |
| 3 | ! | 논리 NOT 연산자 | 오른쪽에서 왼쪽 |
| ~ | 비트 NOT 연산자 | 오른쪽에서 왼쪽 | |
| + | 양의 부호 (단항 연산자) | 오른쪽에서 왼쪽 | |
| - | 음의 부호(단항 연산자) | 오른쪽에서 왼쪽 | |
| ++ | 전위 증가 연산자 | 오른쪽에서 왼쪽 | |
| -- | 전위 감소 연산자 | 오른쪽에서 왼쪽 | |
| (타입) | 캐스트 연산자 | 오른쪽에서 왼쪽 | |
| 4 | * | 곱셈 연산자 | 왼쪽에서 오른쪽 |
| / | 나눗셈 연산자 | 왼쪽에서 오른쪽 | |
| % | 나머지 연산자 | 왼쪽에서 오른쪽 | |
| 5 | + | 덧셈 연산자(이항 연산자) | 왼쪽에서 오른쪽 |
| - | 뺄셈 연산자 | 왼쪽에서 오른쪽 | |
| 6 | << | 비트 왼쪽 시프트 연산자 | 왼쪽에서 오른쪽 |
| >> | 부호 비트를 확장하면서 비트 오른쪽 시프트 | 왼쪽에서 오른쪽 | |
| >>> | 부호 비트까지 모두 오른쪽 시프트 | 왼쪽에서 오른쪽 | |
| 7 | < | 관계 연산자(보다 작은) | 왼쪽에서 오른쪽 |
| <= | 관계 연산자(보다 작거나 같은) | 왼쪽에서 오른쪽으로 | |
| > | 관계 연산자(보다 큰) | 왼쪽에서 오른쪽 | |
| >= | 관계 연산자(보다 크거나 같은) | 왼쪽에서 오른쪽 | |
| instanceof | 인스턴스의 실제 타입 반환 | 왼쪽에서 오른쪽 | |
| 8 | == | 관계 연산자(와 같은) | 왼쪽에서 오른쪽 |
| != | 관계 연산자(와 같지 않은) | 왼쪽에서 오른쪽 | |
| 9 | & | 비트 AND 연산자 | 왼쪽에서 오른쪽 |
| 10 | ^ | 비트 XOR 연산자 | 왼쪽에서 오른쪽 |
| 11 | 비트 OR 연산자 | 왼쪽에서 오른쪽 | |
| 12 | && | 논리 AND 연산자 | 왼쪽에서 오른쪽 |
| 13 | 논리 OR 연산자 | 왼쪽으로 오른쪽 | |
| 14 | ? : | 삼항 조건 연산자 | 오른쪽에서 왼쪽 |
| 15 | = | 대입 연산자 및 복합 대입 연산자 | 오른쪽에서 왼쪽 |
출처: http://www.tcpschool.com/java/java_operator_arithmetic
자바를 처음 배울 때 해당 내용들을 배웠던 기억이 난다. 하지만 실제로 개발을 할 때 많이 쓰는 연산자만 기억하고 그 밖의 연산자들은 까맣게 잊고 있었는데 이번 정리를 통해서 어떤 연산자들이 있었는지 복기해볼 수 있었다.
http://www.tcpschool.com/java/java_operator_arithmetic
https://www.w3schools.com/java/java_operators.asp
https://www.baeldung.com/java-operators
https://stackoverflow.com/questions/15146052/what-does-the-arrow-operator-do-in-java