사칙 연산을 다루는 연산자로, 가장 기본적이면서도 가장 많이 사용되는 연산자 중 하나이다.
산술 연산자는 모두 두 개의 피연산자는 이항 연산자이며, 결합 방향은 왼쪽에서 오른쪽이다.
연산자의 우선 순위는 수식 내에 여러 연산자가 함께 등장할 때, 어느 연산자가 먼저 처리될 것인지를 결정
연산자의 결합 방향은 수식 내에 우선순위가 같은 연산자가 둘 이상 있을 때, 먼저 어느 연산을 수행 할 것인가를 결정
https://www.cs.bilkent.edu.tr/~guvenir/courses/CS101/op_precedence.html
주어진 논리식을 판단하여 참과 거짓을 결정하는 연산자
논리 연산자와 비슷하지만, 비트 단위로 연산을 할 때 사용하는 연산자
비트 단위로 왼쪽 오른쪽으로 전체 비트를 이동하거나 1의 보수를 만들 때도 사용된다.
피연산자 사이의 상대적인 크기를 판단하는 연산자
왼쪽의 피연산자와 오른쪽의 피연산자를 비교하여 어느쪽이 더 큰지, 작은지, 같은지 등을 판단
두 개의 피연산자를 가지는 이항 연산자, 결합 방향은 왼쪽에서 오른쪽
왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 참
=
왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참
피연산자를 1씩 증가 혹은 감소 시킬 때 사용하는 단항 연산자
나는 지금까지 --x, x-- 가 행을 기준으로 행을 시작할때 -1, 끝날 때 -1인줄 알았다.
변수에 값을 대입할 때 사용하는 이항 연산자.
피연산자들의 결합 방향은 오른쪽에서 왼쪽
람다 표현식을 구성하는 데 사용되는 연산자
(parameters) -> { statements; }
람다 표현식은 Java8에서 도입되었으며 Java의 익명 클래스 코드를 보다 간결하고 읽기 편하게 만든다.
Runnable r = new Runnable() {
@Override
public void run() {
System.out.print("Run method");
}
};
to
Runnable r = ()-> System.out.print("Run method");
장점
단점
FunctionalInterface, 람다에 대한 자세한 내용은 따로 포스팅을 해야겠다.
기존 Switch문 코드
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
System.out.println(6);
break;
case TUESDAY:
System.out.println(7);
break;
case THURSDAY:
case SATURDAY:
System.out.println(8);
break;
case WEDNESDAY:
System.out.println(9);
break;
}
새로운 Switch문 코드
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
//or
System.out.println(
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> {
int k = 7*77*778;
yield k; // yield는 switch 블록 수행 내 return이라고 생각하면 편하다.
}
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
});
자바에서 유일하게 피연산자를 세개 가지는 연산자
// 조건식 ? 반환값1 : 반환값 2
result = num1 > num2 ? num1 : num2;
참조 변수가 참조하고 있는 인스턴스의 실제 타입을 반환해준다.
즉, 해당 객체가 어떤 클래스나 인터페이스로부터 생성되었는지를 판별
// 인스턴스이름 instanceof 클래스 이름 혹은 인터페이스 이름
A a = new A();
B b = new B();
a instanceof A // True
b instanceof A // False
출처
http://www.tcpschool.com/java/java_operator_arithmetic
https://www.delftstack.com/ko/howto/java/java-arrow-operator/
https://velog.io/@nunddu/Java-Switch-Expression-in-Java-14