산술 연산자
계산을 수행하는 기호를 연산자라 한다.
int a = 10;
int b = 5;
int sum = a + b; // 15
int difference = a - b; // 5
int product = a * b; // 50
int quotient = a / b; // 2
int remainder = a % b; // 0
비트 연산자
int f = 6; // 0110 in binary
int g = 4; // 0100 in binary
int bitAnd = f & g; // 0100 -> 4
int bitOr = f | g; // 0110 -> 6
int bitXor = f ^ g; // 0010 -> 2
int bitNot = ~f; // 1001 -> -7
int leftShift = f << 1; // 1100 -> 12
int rightShift = f >> 1; // 0011 -> 3
int unsignedRightShift = f >>> 1; // 0011 -> 3
관계 연산자
int d = 10;
int e = 20;
boolean isEqual = (d == e); // false
boolean isNotEqual = (d != e); // true
boolean isGreater = (d > e); // false
boolean isLess = (d < e); // true
boolean isGreaterOrEqual = (d >= e); //false
boolean isLessOrEqual = (d <= e); // true
논리 연산자
boolean x = true;
boolean y = false;
boolean andResult = x && y; // false
boolean orResult = x || y; // true
boolean notResult = !x; // false
instanceof
객체의 타입을 확인할때 사용 이항연산자이고 Boolean을 반환한다.
String str = "Hello, World!";
boolean isString = str instanceof String; // true
대입 연산자
int c = 10;
c += 5; // c = c + 5; -> c는 15
c -= 3; // c = c - 3; -> c는 12
c *= 2; // c = c * 2; -> c는 24
c /= 4; // c = c / 4; -> c는 6
c %= 5; // c = c % 5; -> c는 1
화살표 연산자
Java 8에서 추가된 람다 표현식, 함수형 프로그래밍으로 표현
화살표 연산자를 통해서 익명 클래스를 표현할 수 있음
// 기존
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Hello, World!");
}
};
new Thread(runnable).start();
// 람다
Runnable runnable = () -> {
System.out.println("Hello, World!");
};
new Thread(runnable).start();
3항 연산자
(조건) ? (true 경우 실행) : (false 경우 실행)
int h = 10;
int i = 20;
int max = (h > i) ? h : i; // h가 i보다 크면 h, 그렇지 않으면 i 반환 -> max는 20
연산자 우선순위
switch 연산자
Java 12에서 추가된 연산자
break를 사용하지 않아도 되고 return값이 존재해도 된다.
case -> A의 형식으로 사용 가능
yield 예약어로 반환값을 미리 지정해놓을 수 있음
switch(score){
case 100 -> System.out.println("만점");
case 0 -> System.out.println("빵점");
};