Java Java vs C# (연산자) - 6부
페이지 정보
본문
Java와 C#의 연산자 비교입니다. 이미 자세한 내용은 작성되어 있는데요. 여기에서는 간단하게 어떤 차이가 있는지만 알아보겠습니다. 이미 관련 내용들이 있어서 중복성 글이긴 하지만 가볍게 보기엔 좋을거 같네요.
구분 |
Java |
C# |
비고 |
비교 연산자 |
== |
== |
같다. |
< |
< |
보다 크다. |
|
> |
> |
보다 작다. |
|
<= |
<= |
보다 크거나 같다. |
|
>= |
>= |
보다 작거나 같다. |
|
!= |
!= |
같지 않다. |
|
산술 연산자 |
+ |
+ |
산술 더하기 한다. |
- |
- |
산술 빼기 한다. |
|
* |
* |
산술 곱하기 한다. |
|
/ |
/ |
산술 나누기 한다. |
|
% |
% |
산술 나누기에 대한 나머지를 반환한다. |
|
할당 연산자 |
= |
= |
첫번째 피연산자에 두번째 피연산자를 대입한다. 묵시적으로 타입 케스팅이 되어야 한다. Built-in type의 경우 값을 복사하고, Reference type은 주소를 복사한다. |
+= |
+= |
+ 연산 후 대입한다. |
|
-= |
-= |
- 연산 후 대입한다. |
|
*= |
*= |
* 연산 후 대입한다. |
|
/= |
/= |
/ 연산 후 대입한다. |
|
%= |
%= |
% 연산 후 대입한다. |
|
&= |
&= |
& 연산 후 대입한다. |
|
|= |
|= |
| 연산 후 대입한다. |
|
^= |
^= |
^ 연산 후 대입한다. |
|
<<= |
<<= |
<< 연산 후 대입한다. |
|
>>= |
>>= |
>> 연산 후 대입한다. |
|
>>>= |
없음 |
>>> 연산 후 대입한다. |
|
++ |
++ |
피연산자끼리 + 연산 후 대입한다. |
|
-- |
-- |
피연산자끼리 - 연산 후 대입한다. |
|
비트 연산자 |
& |
& |
피연산자에 대한 논리 AND를 계산한다. |
| |
| |
피연산자에 대한 논리 OR를 계산한다. |
|
^ |
^ |
피연산자에 대한 논리 배타적 OR를 계산한다. |
|
~ |
~ |
비트 보수 연산을 수행하여 각 비트를 반전 시킨다. |
|
<< |
<< |
비트를 왼쪽으로 시프트 시킨다. |
|
>> |
>> |
비트를 오른쪽으로 시프트 시킨다. |
|
>>> |
없음 |
비트를 오른쪽으로 논리 시프트 시킨다. |
|
논리 연산자 |
&& |
&& |
피연산자의 논리 AND를 수행한다. 첫번째 피연산자에 따라 두번째 피연산자의 수행 여부가 결정된다. |
|| |
|| |
피연산자의 논리 OR를 수행한다. 첫번째 피연산자에 따라 두번째 피연산자의 수행 여부가 결정된다. |
|
& |
& |
피연산자의 비트에 대한 논리 AND를 수행한다. 첫번째 피연산자에 따라 두번째 피연산자의 수행 여부가 결정된다. |
|
| |
| |
피연산자의 비트에 대한 논리 OR를 수행한다. 첫번째 피연산자에 따라 두번째 피연산자의 수행 여부가 결정된다. |
|
^ |
^ |
피연산자의 비트에 대한 논리 배타적 OR를 수행한다. |
|
! |
! |
피연산자를 부정한다. |
|
문자열 결합 연산자 |
+ |
+ |
문자열들을 결합시킨다. |
다른 용도 |
|
~ |
소멸자를 정의한다. |
-
>>> 연산자는 Java에만 존재합니다. 이는 부호 없는 자료형을 지원하지 않기 때문인데요. bit를 오른쪽으로 shift할 때 MSB가 무조건 0으로 채워지기 때문입니다. 다시 말해 부호 없는 자료형을 지원하는 C#의 경우 양수만 표현하는 연산자는 혼란을 불러오게 됩니다. int와 uint에서 int에만 적용 되는 연산자를 만들 수는 없으니까요.
-
C#은 ::(글로벌 별칭) 연산자와 ?.(null 조건부), ??(null 병합) 연산자등등... Java에는 없는 연산자도 존재합니다. 뭐 Java도 언젠가는 이런 연산자를 추가할 수도 있겠죠. null 조건부 연산자와 null 병합 연산자는 C# 6에 추가 되었습니다. (null 조건부 연산자와 nullable은 다릅니다.)
-
C#의 경우에는 산술 오버 플로우를 검사할 수 있는 checked와 unchecked 키워드를 제공합니다.
-
C#은 User defined type에 대한 연산을 수행할 수 있도록 operator 키워드를 통해 연산자를 오버로딩 할 수 있습니다.
간단하게 단순 비교한 표를 만들어 봤습니다. 자세한 내용은 강좌 메뉴에 있는 Java와 C#에 있습니다.
- 이전글Java vs C# (조건문) - 7부 20.08.16
- 다음글Java vs C# (열거형과 구조체, enum and struct) - 5부 20.08.16
댓글목록
등록된 댓글이 없습니다.