자바에서 사용되는 연산자는 다음과 같이 분류할 수 있습니다:
분류 |
예시 |
설명 |
---|---|---|
산술 연산자 |
+, -, *, /, % |
사칙연산 및 나머지 계산 |
대입 연산자 |
=, +=, -=, *=, /=, %= |
변수에 값 할당 또는 누적 연산 |
증감 연산자 |
++, -- |
1씩 증가 또는 감소 |
비교 연산자 |
==, !=, >, <, >=, <= |
두 값 비교 결과 boolean 반환 |
논리 연산자 |
&&, ` |
|
비트 연산자 |
&, ` |
, ^, ~, <<, >>, >>>` |
조건(삼항) 연산자 |
조건 ? 값1 : 값2 |
조건에 따라 값 선택 |
instanceof 연산자 |
obj instanceof ClassName |
객체 타입 판별 |
연산자 |
의미 |
예시 |
---|---|---|
+ |
덧셈 |
a + b |
- |
뺄셈 |
a - b |
* |
곱셈 |
a * b |
/ |
나눗셈 |
a / b |
% |
나머지 연산 |
a % b |
정수형 나눗셈은 소수점 이하가 버려집니다.
기본 할당 외에도 복합 대입 연산자가 존재합니다.
연산자 |
의미 |
예시 |
---|---|---|
= |
단순 할당 |
a = 5 |
+= |
a = a + b와 같음 |
a += b |
-= |
a = a - b와 같음 |
a -= b |
*= |
a = a * b와 같음 |
a *= b |
/= |
a = a / b와 같음 |
a /= b |
%= |
a = a % b와 같음 |
a %= b |
연산자 |
설명 |
예시 |
---|---|---|
++ |
1 증가 (전위/후위) |
++a, a++ |
-- |
1 감소 (전위/후위) |
--a, a-- |
전위형(++a)은 먼저 증가 후 사용, 후위형(a++)은 사용 후 증가합니다.
연산자 |
의미 |
결과 값 |
---|---|---|
== |
같다 |
boolean |
!= |
같지 않다 |
boolean |
> |
크다 |
boolean |
< |
작다 |
boolean |
>= |
크거나 같다 |
boolean |
<= |
작거나 같다 |
boolean |
조건식의 논리 조합에 사용됩니다.
연산자 |
의미 |
예시 |
---|---|---|
&& |
논리 AND |
a > 0 && b > 0 |
` |
` |
|
! |
논리 NOT |
!(a > b) |
int max = (a > b) ? a : b;
조건식 ? 값1 : 값2
조건이 true이면 값1, false이면 값2를 선택
2진수(bit) 단위의 연산을 수행합니다.
연산자 |
설명 |
---|---|
& |
AND |
` |
` |
^ |
XOR |
~ |
NOT (보수) |
<< |
왼쪽 시프트 |
>> |
오른쪽 시프트 |
>>> |
부호 없는 우시프트 |
예시:
int a = 5; // 0101
int b = 3; // 0011
int c = a & b; // 0001 → 1
객체가 특정 클래스의 인스턴스인지 확인할 때 사용합니다.
if (obj instanceof String) {
System.out.println("문자열입니다.");
}
연산자는 우선순위와 결합 방향이 존재합니다.
대체로 다음 순서대로 높은 우선순위를 가집니다:
괄호 ()
증감 ++, --
산술 *, /, %
산술 +, -
비교 <, >, ==, !=
논리 &&, ||
조건 ?:
대입 =, +=, -=
괄호로 우선순위를 명확히 표현하는 습관이 좋습니다.
연산자 종류 |
주요 연산자 |
---|---|
산술 |
+, -, *, /, % |
대입 |
=, +=, -=, *=, /=, %= |
증감 |
++, -- |
비교 |
==, !=, >, <, >=, <= |
논리 |
&&, ` |
비트 |
&, ` |
조건(삼항) |
조건 ? 참 : 거짓 |
타입 비교 |
instanceof |