[Java-20] 자바 연산자 우선순위
Java
1. 간단한 연산자 표 Simple
종종 연산자에 대해서 얘기를 할 때, 연산자 우선순위에 대해서 얘기 한적이 있다. 그래서 이번에는 연산자 우선순위를 정리하는 시간을 가지도록 해보자
먼저 우리가 지금까지 알고 있었던 연산자 우선순위에는, 다음과 같은 표를 많이 봐왔을 것이다.
Simple , 간단한 우선순위이다. 우리는 똑똑하니 뒤에표를 보도록 하자 : D
우선 순위 | 연산자 | 내용 |
1 | (),[] | 괄호 / 대괄호 |
2 | !,~,++,-- | 부정/ 증감 연산자 |
3 | *, /, % | 곳셈/나눗셈 연산 |
4 | +, - | 덧셈/빼기 연산 |
5 | <<,>>,>>> | 비트단위 쉬프트 연산자 |
6 | <.<=,>,>= | 관계 연산자 |
8 | ==, != | |
9 | & | 비트단위의 논리연산 |
10 | ^ | |
11 | && | 논리곱 |
12 | || | 논리합 |
13 | ?: | 조건부 연산자 |
14 | =,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,~= | 대입 할당 연산자 |
이렇게 우리가 알고 있는 우선순위 에 대해서 알아보았다. 하지만 이보다 java 연산자 우선순위는 더 폭 넓게 존재하는데,
2. 자세한 연산자 표
순서 | 연산방향 | 연산자 | 피연산자 타입 | 수행 |
1 | 좌측부터 | . | 객체, 필드(멤버) | 객체 멤버 접근 |
[ ] | 배열, int | Array 원소 접근 | ||
( args ) | 메소드, arglist | 메소드 호출 | ||
++, -- | 변수 variable ex) ++x | 전위 증감 | ||
2 | 우측부터 | ++, -- | 변수 variable ex) x++ | 후위 증감 |
+, - | number 숫자 ex) -3, +3 | 단항 +, 단항 - | ||
~ | integer | 비트 조건연산자 | ||
! | boolean | 논리 not연산 | ||
3 | 우측부터 | new | class, arglist | 객체 생성 |
( type ) | type, any | 타입 캐스팅 | ||
4 | 좌측부터 | *,/,% | number (*,/,%) number | 곱,나누기,나머지 |
5 | 좌측부터 | +,- | number (+,-) number | 더하기, 빼기 |
+ | String + (any) | 스트링에 문자열 더하기 | ||
6 | 좌측부터 | << | integer, integer | left shift |
>> | integer, integer | right shift (밀린 비트 부분 1로 메꿈) | ||
>>> | integer, integer | right shift(밀린 비트 0으로 채움) | ||
7 | 좌측부터 | <,<= | number, number | less than, less than equal |
>, >= | number, number | greater than, greater than equal | ||
instanceof | reference , type | 타입 비교 | ||
8 | 좌측부터 | == | primitive,primitive | 같은지 비교 |
!= | primitive,primitive | 안같은지 비교 | ||
== | reference, reference | 같은지 비교 | ||
!= | reference, reference | 안같은지 비교 | ||
9 | 좌측부터 | & | integer, integer | 비트 AND |
& | boolean,boolean | 논리 AND | ||
10 | 좌측부터 | ^ | integer, integer | 비트 XOR |
^ | boolean,boolean | 논리 XOR | ||
11 | 좌측부터 | | | integer, integer | 비트 OR |
| | boolean , boolean | 논리 OR | ||
12 | 좌측부터 | && | boolean, boolean | 조건부 AND |
13 | 좌측부터 | || | boolean, boolean | 조건부 OR |
14 | 우측부터 | ?: | boolean, any | 조건부 (3항) 연산 |
15 | 우측부터 | = | variable, any | 대입 |
+=, /=, %=, +=,-=,<<=, >>=,>>>=, &=,^=,|= | variable, any | 대입 + 연산 | ||
16 | 우측부터 | -> | argilist, method body | 람다 |
마지막 람드를 봤는데, 다음은 -> 연산에 대해서 알아보도록 하자, 이 화살표 연산만으로도 몇개의 포스팅으 될 수 있지만 최대한 간단하고 이해하기 쉽게 설명하도록 하자 : D