ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java-20] 자바 연산자 우선순위
    Java 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

    댓글

Designed by Tistory.