ex) 3 + 5
식은 결과값을 생성함 ex) 3 + 5 = 8연산자에는 다양한 종류가 있으며, 각각의 의미와 우선순위가 다름수학적인 계산을 수행하는 연산자이다.
종류정수형과 실수형 모두에 적용ArithmeticException나누기와 나머지 연산자 사용 시 0으로 나누면 발생하는 예외정수형의 각 비트에 대해 논리적인 연산을 수행하는 연산자이다.
종류~ (비트 반전)& (비트 AND)| (비트 OR)^ (비트 XOR)<< (왼쪽 시프트)<< 2 : 00000000 = 0>> (오른쪽 시프트)>> 2 : 11100000 = -32>>> (Unsigned 오른쪽 시프트)>>> 2 : 00100000 = 32피연산자의 크기나 순서를
비교하는 연산자이다.
종류public class FloatingPoint {
public static void main(String[] args) {
double a = 0.1;
double b = 0.2;
System.out.println((a + b) == 0.3);
}
}false피연산자의
참거짓을 판단하는 연산자이다.
종류! 논리부정&& 논리곱|| 논리합단락평가
객체가 특정 클래스의 인스턴스인지,
또는 특정 인터페이스를 구현한 클래스의 인스턴스인지 확인하는 연산자이다.
RTTI (Run Time Type Identification)객체의 프로토타입 체인다형성을 지원함// Cat 클래스 인스턴스 생성
Cat cat = new Cat("Kitty", "White");
// instanceof 연산자를 사용하여 인스턴스의 클래스 확인
System.out.println(cat instanceof Cat); // true
System.out.println(cat instanceof Animal); // true
System.out.println(cat instanceof Object); // true오른쪽의 값을 왼쪽의 변수에 저장하는 연산자이다.
종류우선순위Java 8에서 추가된 람다 표현식의 일부로,
함수형 프로그래밍을 가능하게 하는 연산자
익명 함수(anonymous function)를 생성하는 간단한 방법
함수를 하나의 식(expression)으로 취급할 수 있게 함
람다 표현식은 주로 함수형 인터페이스(functional interface)의 구현체로 사용됨
함수형 인터페이스문법
(매개변수) -> {실행문}
매개변수
화살표(->)
실행문
ex
@FunctionalInterface
interface Calculator {
int calculate(int a, int b);
}
public class LambdaExample {
public static void main(String[] args) {
Calculator addition = (a, b) -> a + b; // 매개변수 a, b를 이용하여 a + b를 반환
Calculator subtraction = (a, b) -> a - b; // 매개변수 a, b를 이용하여 a - b를 반환
System.out.println(addition.calculate(3, 4)); // 7
System.out.println(subtraction.calculate(7, 2)); // 5
}
}
장점
함수를 변수처럼 전달하거나 반환할 수 있음단점
⇒ 함수가 일급 시민이다 == 일급 함수
일급 시민 = 일급 객체 + 일급 함수익명 객체를 일급 함수로 사용할 수 있게 됨함수형 프로그래밍함수를 일급 시민으로 취급피연산자를 세 개 받는 유일한 연산자로, 조건식에 따라 다른 값을 반환하는 연산자이다.
조건 ? 참일 때 값 : 거짓일 때 값조건 부분에는 boolean 타입의 값이나 식이 올 수 있음int max = (a > b) ? a : b권장 xint result = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c)식을 평가할 때 연산자들의 실행 순서를 결정하는 규칙이다.
하나의 값이나 식에 따라 다른 코드 블록을 실행하는 조건문이다.
break 문defaultJava 12 - 새로운 표현식화살표 연산자 (->)
public class NewSwitch {
public static void main(String[] args) {
int a = 10;
String result = switch (a) {
case 5,6,7,8,9,10 -> "5 ~ 10";
case 11,12,13,14,15 -> "11 ~ 15";
default -> "모름";
};
System.out.println(result);
}
}
Java 13 - yieldpublic class NewSwitch {
public static void main(String[] args) {
int a = 10;
String result = switch (a) {
case 5,6,7,8,9,10 -> {
System.out.println("yield1");
yield "5 ~ 10";
}
case 11,12,13,14,15 -> {
System.out.println("yield2");
yield "11 ~ 15";
}
default -> {
System.out.println("yield3");
yield "모름";
}
};
System.out.println(result);
}
}return값이 있는 경우