연산을 수행하는 기호
+, -, *, /)을 비롯해서 다양한 연산을 수행하게끔 하는 기호x + y에서 x 변수와 y변수)일반적으로 식이 평가되서 결과를 얻더라도 쓰이지 않으면 사라지기 때문에(소멸됨) 연산자 중 대입 연산자(=)를 사용해서 값을 저장함 (출력용; sysout)
| 종류 | 연산자 | 설명 |
|---|---|---|
| 산술 연산자 | + - * / % | 사칙연산과 나머지 연산 |
| 비트 연산자 | << >> | 비트를 좌우로 이동하는 연산자 |
| 비교 연산자 | > < >= <= == != | 크기와 같음을 비교하는 연산자 |
| 논리 및 비트 연산자 | && || ! & | ^ ~ | 논리 및 비트 연산을 수행하는 연산자 |
| 대입 연산자 | = | 우변 값을 좌변에 대입하는 연산자 |
| 기타 | (type) ?: instanceof | 형변환, 삼항 연산자, instanceof 연산자 |
(한 개) 단항 연산자
(두 개) 이항 연산자
(세 개) 삼항 연산자
보통 대부분의 연산자는 이항 연산자다.
연산자의 우선순위에 의해 연산되는 순서가 결정됨
연산자의 결합 규칙에 의해 연산되는 순서가 결정됨
변수가 저장할 수 있는 값의 범위보다 더 큰 값을 저장하려는 경우
객체가 어떤 클래스인지, 어떤 클래스를 상속받았는지 확인하는데 사용하는 연산자
→ 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 사용
<object> instanceOf <type>
object가 type이거나 type을 상속받는 클래스라면 true를 리턴
람다 표현식을 구성하는 데 사용
람다식 장점
람다식 단점
람다식 예시
//일반 메서드
int max(int a, int b) {
return a>b ? a : b;
//람다 표현
(a, b) -> a>b ? a : b;
//일반 메서드
void printNumber(String name, int number) {
System.out.println(name + ": " + number);
}
//람다 표현
(name, number) -> System.out.println(name + ": " + number);
조건문을 더 간결하게 표현 가능
int max(int a, int b) {
if (a>b) {
return a
} else {
return b
}
}
int max(int a, int b) {
return a>b ? a : b;