Java

[Java-20] 자바 연산자 우선순위

lee-maru 2020. 11. 27. 14:36

 

 

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