반응형
연산자(operator)
산술 연산자(arithmetic operator)
- 산술 연산자는 사칙연산을 다루는 연산자로, 가장 기본적이면서도 가장 많이 사용되는 연산자 중 하나다.
- 산술 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.

int num1 = 8, num2 = 4;
System.out.println(num1 + num2); // 12
System.out.println(num1 - num2); // 4
System.out.println(num1 * num2); // 32
System.out.println(num1 / num2); // 2
System.out.println(num1 % num2); // 0
대입 연산자(assignment operator)
- 대입 연산자는 변수에 값을 대입할 때 사용하는 이항 연산자이며, 피연산자들의 결합 방향은 오른쪽에서 왼쪽이다.
- 자바에서는 대입 연산자와 다른 연산자를 결합하여 만든 다양한 복합 대입 연산자를 제공한다.

int num1 = 7, num2 = 7, num3 = 7;
num1 = num1 - 3;
num2 -= 3;
num3 =- 3; // 단순히 -3를 변수 num3에 대입하는 연산
System.out.println(num1); // 4
System.out.println(num2); // 4
System.out.println(num3); // -3
증감 연산자(increment and decrement operators)
- 증감 연산자는 피연산자를 1씩 증가 혹은 감소시킬 때 사용하는 연산자로, 피연산자가 단 하나뿐인 단항 연산자다.
- 증감 연산자는 해당 연산자가 피연산자의 어느 쪽에 위치하는가에 따라 연산의 순서 및 결과가 달라진다.

int num1 = 7, num2 = 7;
int result1, result2;
result1 = --num1 + 4;
result2 = num2-- + 4;
System.out.println(result1 + ", " + num1); // 10, 6
System.out.println(result2 + ", " + num2); // 11, 6
int x = 10;
int y = x-- + 5 + --x; // 10 + 5 + 8
System.out.println("x : "+ x + ", y : " + y); // x : 8, y : 23
비교 연산자(comparison operator)
- 비교 연산자는 피연산자 사이의 상대적인 크기를 판단하는 연산자다. 비교 연산자는 왼쪽의 피연산자와 오른쪽의 피연산자를 비교하여, 어느 쪽이 더 큰지, 작은지, 또는 서로 같은지를 판단한다.
- 비교 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.

char ch1 = 'a', ch2 = 'A'; // 아스키코드로 A는 65, a는 97
System.out.println(ch1 == ch2); // false
System.out.println(ch1 > ch2); // true
논리 연산자(logical operator)
- 논리 연산자는 주어진 논리식을 판단하여, 참(true)과 거짓(false)을 결정하는 연산자다.
- AND 연산과 OR 연산은 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.
- NOT 연산자는 피연산자가 단 하나뿐인 단항 연산자이며, 피연산자의 결합 방향은 오른쪽에서 왼쪽이다.

char ch1 = 'b', ch2 = 'B';
boolean result1, result2;
result1 = (ch1 > 'a') && (ch1 < 'z') ; // true && true
result2 = (ch2 < 'A') || (ch2 < 'Z') ; // false || false
System.out.println(result1); // true
System.out.println(result2); // true
System.out.println(!result2); // false
비트 연산자(bitwise operator)
- 비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자다.
- 비트 단위로 왼쪽이나 오른쪽으로 전체 비트를 이동하거나, 1의 보수를 만들 때도 사용된다.





int num1 = 8, num2 = -8;
System.out.println(~num1); // -9
System.out.println(num1 << 2); // 32
System.out.println(num2 >> 2); // -2
System.out.println(num1 >>> 2); // 2
System.out.println(num2 >>> 2); // 1073741822
삼항 연산자(ternary operator)
- 삼항 연산자는 자바에서 유일하게 피연산자를 세 개나 가지는 조건 연산자다.
- 물음표(?) 앞의 조건식에 따라 결괏값이 참(true)이면 반환값1을 반환하고, 결괏값이 거짓(false)이면 반환값2를 반환한다.
조건식 ? 반환값1 : 반환값2
int num1 = 5, num2 = 7;
int result;
result = (num1 - num2 > 0) ? num1 : num2;
System.out.println("두 정수 중 더 큰 수는 " + result); // 두 정수 중 더 큰 수는 7
instanceof 연산자
- instanceof 연산자는 참조 변수가 참조하고 있는 인스턴스의 실제 타입을 반환해 준다.
- 해당 객체가 어떤 클래스나 인터페이스로부터 생성되었는지를 판별해 주는 역할을 한다.
- instanceof 연산자는 왼쪽 피연산자인 인스턴스가 오른쪽 피연산자인 클래스나 인터페이스로부터 생성되었으면 true를 반환하고, 그렇지 않으면 false를 반환한다.
인스턴스이름 instanceof 클래스또는인터페이스이름
class A {}
class B extends A {}
public static void main(String[] args) {
A a = new A();
B b = new B();
System.out.println(a instanceof A); // true
System.out.println(b instanceof A); // true
System.out.println(a instanceof B); // false
System.out.println(b instanceof B); // true
}
자바 연산자의 우선순위표

Reference
반응형
'Language > Java' 카테고리의 다른 글
[Java] 자바 배열 - 1차원, 2차원, 다차원 배열 (feat. 메모리 구조) (0) | 2024.04.07 |
---|---|
[Java] 자바 제어문 - If, Switch, While, For, Continue, Break, Label (0) | 2024.04.06 |
[Java] 자바 타입 - 변수, 상수, 기본/참조형 타입, 타입 변환 (0) | 2024.04.06 |
[Java] 자바 기본 문법 - main(), 명령문, 주석, 입출력 (0) | 2024.04.05 |
[Java] 자바 개요 - 정의, 역사, 실행 과정 (feat. 자바 가상 머신) (1) | 2024.04.03 |