출처 : 자바의신 VOL.1 기초 문법편
자바에서 제공하는 연산자들을 분류해 보면 다음과 같이 나눌 수 있다.
■ 연산자의 종류
● 할당 연산자 : =
● 사칙 연산자 : +, -, *, /, %
● 대입 연산자 : +=, -=, *=, /=, %=
● 단항 연산자 : +, -, ++, --(여기서 +와 -는 양수와 음수를 나타내는 연산자임)
● 비교 연산자 : ==, !=, >, <, >=, <=
● 조건 논리 연산자 : %5, ||
● 논리 연산자 : !, &, |, ^
● 삼항 연산자 : ? :
● Bitwise 연산자 : &(AND), |(OR), ^(XOR), ~(NOT)
● Bit 이동 연산자 : <<, >>, >>>
● Bit 대입 연산자 : &=, |=, ^=, <<=, >>=, >>>=
여기서 삼항 연산자는 다음과 같이 사용하면 된다.
변수 = (boolean 조건식) ? true일때의 값 : false일때의 값 ; |
■ 연산자 연산 순위(같은 레벨에 있는 연산자는 연산 우선 순위가 동일함)
레벨 |
연산자 |
한글 설명 |
영문 설명 |
결합 방향 |
01 |
[] |
배열 요소 접근 |
access array element |
좌 → 우 |
. |
객체 변수 접근 |
access object member |
||
, |
for 루프의 초기화시에만 |
comma |
||
( ) |
메소드 호출 |
invoke a method |
||
++ |
×++로 사용할 경우 |
post-increment |
||
-- |
×--로 사용할 경우 |
post-decrement |
||
02 |
++ |
++×로 사용할 경우 |
pre-increment |
우 → 좌 |
-- |
--×로 사용할 경우 |
pre-decrement |
||
+ |
+× |
unary plus |
||
- | -× | unary minus | ||
! | logical NOT | |||
~ | bitwise NOT | |||
03 | ( ) | 형 변환시 소괄호 | cast | 우 → 좌 |
new | 객체 생성 | object creation | ||
04 | *, /, % | 배수 연산 | multiplicative | 좌 → 우 |
05 | +, - | 증감 연산 | additive | 좌 → 우 |
+ | 문자열 더하기 | string concatenation | ||
06 | <<, >>, >>> | Bit 이동 연산 | shift | 좌 → 우 |
07 | <, <=, >, >= | 비교 연산 | relational | 좌 → 우 |
instanceof | 타입 비교 연산 | type comparison | ||
08 | ==, != | 비교 연산 | equality | 좌 → 우 |
09 | & | 비교 AND | bitwise AND | 좌 → 우 |
10 | ^ | 비트 XOR | bitwise XOR | 좌 → 우 |
11 | | | 비트 OR | bitwise OR | 좌 → 우 |
12 | && | 조건 논리 AND | conditional AND | 좌 → 우 |
13 | || | 조건 논리 OR | conditional OR | 좌 → 우 |
14 | ? : | 삼항 연산 | conditional | 우 → 좌 |
15 | =, +=, -=, *=, /\, %=, &=, ^=, |=, <, <=, >, >= | 할당 연산 | assignment | 우 → 좌 |
※ 여기서 결합 방향은 동등한 연산이 있을 때의 방향을 이야기한다.
예를 들어 2 * 3 / 4는 좌에서 우로 연산하므로, (2 * 3) /4와 동일하다. 반대로 x = y = 3과 같이 연산을 하면 x = (y = 3)과 같기 때문에 y에 3을 할당하고, 그 다음에 x에 3을 할당한다. 즉, 보이지 않는 괄호가 우선 발생하는 방향을 의미한다.
'JAVA > JAVA Programming' 카테고리의 다른 글
[JAVA] 어노테이션을 선언할 때 사용하는 메타어노테이션들 (0) | 2015.02.26 |
---|---|
[JAVA] 예외를 처리하자 (0) | 2015.02.26 |
[JAVA] 자주 사용하게 되는 상속 (0) | 2015.02.26 |
[JAVA] 메소드의 선언 (0) | 2015.02.26 |
[JAVA] 자바를 구성하는 클래스, 인터페이스, 추상클래스 (0) | 2015.02.25 |