연산자

종류

연산자

피연산자 수

산출값

기능설명

산술

+,-,*,/,%

이항

숫자

사칙연산 및 나머지 계산

부호

+,-

단항

숫자

음수, 양수의 부호

문자열

+

이항

문자열

두 문자열을 연결

대입

=,+=,-=,*=,/=,%=,&=,^=,<<=,>>=,>>>=

이항

다양

우변의 값을 좌변의 변수에 대입

증감

++,--

단항

숫자

1만큼 증가/감소

비교

==,!=,>,<,>=,<=,instanceof

이항

boolean

값의 비교

논리

!,,&,&&,││

단항,이항

boolean

논리적 NOT, OR, AND연산

조건

(조건식)?A:B

삼항

다양

조건식에 따라 A 또는 B 중 하나 선택

비트

~,&,,^

단항, 이항

숫자, boolean

비트 NOT, OR, AND, XOR

쉬프트

>>,<<,>>>

이항

숫자

비트를 좌측/우측으로 밀어서 이동

연산자

방향

증감(++,--),부호(+,-),비트(~),논리(!)

산술(*,/,%)

산술(+,-)

쉬프트(>>,<<,>>>)

비교(>,<,>=,<=,instanceof)

비교(==,!=)

논리(&)

논리(^)

논리()

논리(&&)

논리(││)

조건(?:)

대입(=,+=,-=,*=,/=,%=,&=,^=,<<=,>>=,>>>=)

1. 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다.
2. 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다.
3. 단항과 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽이다.
4. 복잡한 연산식에는 괄호()를 사용해서 우선순위를 정해준다.

-- 비트반전연산자, 부호연산자는 int타입이 된다. --

String BinaryString = Integer.toBinaryString(10); // 정수 값을 32비트 이진 문자열로 반환
산술 연산시에 오버플로우가 발생하지 않도록 주의해아한다.

나눗셈(/)과 나머지(%)연산에서 우측 피연산자는 0을 사용할 수 없다.(ArithmeticException 예외 발생)
하지만 0.0 or 0.0f으로 계산할 경우에는
    나눗셈(/) 연산은 Infinity(무한대) 결과 값
    나머지(%) 연산은 NaN(Not a Number) 결과 값을 가진다.
Double.isInfinite(); // 결과 값이 Infinite인지 확인
Double.isNaN();      // 결과 값이 NaN인지 확인
NaN은 != 연산자를 제외한 모든 비교 연산자를 사용할 경우 false값을 반환한다.
그러므로 반드시 Double.isNaN() 메소드를 사용해야한다.

String 객체의 문자열만을 비교하고 싶다면 ==대신에 equals()메소드를 사용해야햔다.

boolean result = str1.equals(str2);

Last updated