학습한 내용을 정리한 포스팅입니다. 직역된 부분이 있어 어색할 수 있습니다. 틀린 부분이 있다면 언제든 지적 해주시면 감사하겠습니다. 🙇🏻♀️
자바 연산자 (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