NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Java Java vs C# (연산자) - 6부

    페이지 정보

    본문

    Java와 C#의 연산자 비교입니다. 이미 자세한 내용은 작성되어 있는데요. 여기에서는 간단하게 어떤 차이가 있는지만 알아보겠습니다. 이미 관련 내용들이 있어서 중복성 글이긴 하지만 가볍게 보기엔 좋을거 같네요.

     구분

       Java  

        C#   

     비고

     비교 연산자

    ==

    ==

     같다.

    <

    <

     보다 크다.

    >

    >

     보다 작다.

    <=

    <=

     보다 크거나 같다.

    >=

    >=

     보다 작거나 같다.

    !=

    !=

     같지 않다.

     산술 연산자

    +

    +

     산술 더하기 한다.

    -

    -

     산술 빼기 한다.

    *

    *

     산술 곱하기 한다.

    /

    /

     산술 나누기 한다.

    %

    %

     산술 나누기에 대한 나머지를 반환한다.

     할당 연산자

    =

    =

     첫번째 피연산자에 두번째 피연산자를 대입한다.

     묵시적으로 타입 케스팅이 되어야 한다.

     Built-in type의 경우 값을 복사하고, Reference type은 주소를 복사한다.

    +=

    +=

     + 연산 후 대입한다.

    -=

    -=

     - 연산 후 대입한다.

    *=

    *=

     * 연산 후 대입한다.

    /=

    /=

     / 연산 후 대입한다.

    %=

    %=

     % 연산 후 대입한다.

    &=

    &=

     & 연산 후 대입한다.

    |=

    |=

     | 연산 후 대입한다.

    ^=

    ^=

     ^ 연산 후 대입한다.

    <<=

    <<=

     << 연산 후 대입한다.

    >>=

    >>=

     >> 연산 후 대입한다.

    >>>=

    없음

     >>> 연산 후 대입한다.

    ++

    ++

     피연산자끼리 + 연산 후 대입한다.

    --

    --

     피연산자끼리 - 연산 후 대입한다.

     비트 연산자

    &

    &

     피연산자에 대한 논리 AND를 계산한다.

    |

    |

     피연산자에 대한 논리 OR를 계산한다.

    ^

    ^

     피연산자에 대한 논리 배타적 OR를 계산한다.

    ~

    ~

     비트 보수 연산을 수행하여 각 비트를 반전 시킨다.

    <<

    <<

     비트를 왼쪽으로 시프트 시킨다.

    >>

    >>

     비트를 오른쪽으로 시프트 시킨다.

    >>>

    없음

     비트를 오른쪽으로 논리 시프트 시킨다.

     논리 연산자

    &&

    &&

     피연산자의 논리 AND를 수행한다.

     첫번째 피연산자에 따라 두번째 피연산자의 수행 여부가 결정된다.

    ||

    ||

     피연산자의 논리 OR를 수행한다.

     첫번째 피연산자에 따라 두번째 피연산자의 수행 여부가 결정된다.

    &

    &

     피연산자의 비트에 대한 논리 AND를 수행한다.

     첫번째 피연산자에 따라 두번째 피연산자의 수행 여부가 결정된다.

    |

    |

     피연산자의 비트에 대한 논리 OR를 수행한다.

     첫번째 피연산자에 따라 두번째 피연산자의 수행 여부가 결정된다.

    ^

    ^

     피연산자의 비트에 대한 논리 배타적 OR를 수행한다.

    !

    !

     피연산자를 부정한다.

      문자열 결합 연산자  

    +

    +

     문자열들을 결합시킨다.

    다른 용도

     

    ~

     소멸자를 정의한다.

     

     

    1. >>> 연산자는 Java에만 존재합니다. 이는 부호 없는 자료형을 지원하지 않기 때문인데요. bit를 오른쪽으로 shift할 때 MSB가 무조건 0으로 채워지기 때문입니다. 다시 말해 부호 없는 자료형을 지원하는 C#의 경우 양수만 표현하는 연산자는 혼란을 불러오게 됩니다. int와 uint에서 int에만 적용 되는 연산자를 만들 수는 없으니까요.

    2. C#은 ::(글로벌 별칭) 연산자와 ?.(null 조건부), ??(null 병합) 연산자등등... Java에는 없는 연산자도 존재합니다. 뭐 Java도 언젠가는 이런 연산자를 추가할 수도 있겠죠. null 조건부 연산자와 null 병합 연산자는 C# 6에 추가 되었습니다. (null 조건부 연산자와 nullable은 다릅니다.)

    3. C#의 경우에는 산술 오버 플로우를 검사할 수 있는 checked와 unchecked 키워드를 제공합니다. 

    4. C#은 User defined type에 대한 연산을 수행할 수 있도록 operator 키워드를 통해 연산자를 오버로딩 할 수 있습니다.

     

     

    간단하게 단순 비교한 표를 만들어 봤습니다. 자세한 내용은 강좌 메뉴에 있는 Java와 C#에 있습니다.

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.