- 산술 / 비트 / 관계 / 논리 연산자
더보기
산술 연산자 : +, -, *, /, %
비트 연산자
비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자.
관계 연산자 : ==, !=, >, >=, <, <=
논리 연산자 : &&, ||, !
비트 연산자
비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자.
& | 대응되는 비트가 모두 1이면 1을 반환. (비트 AND 연산) |
| | 대응되는 비트 중에서 하나라도 1이면 1을 반환. (비트 OR 연산) |
^ | 대응되는 비트가 서로 다르면 1을 반환. (비트 XOR 연산) |
~ | 비트를 1이면 0, 0이면 1로 반전. (비트 NOT 연산, 1의 보수) |
<< | 명시된 수만큼 비트들을 모두 왼쪽으로 이동. (Left shift 연산) |
>> | 부호를 유지하고 지정된 수만큼 모두 오른쪽으로 이동. (Right shift 연산) |
>>> | 명시된 수만큼 비트들을 모두 오른쪽으로 이동, 새로운 비트는 0으로 채움. (Unsigned right shift 연산) |
관계 연산자 : ==, !=, >, >=, <, <=
논리 연산자 : &&, ||, !
- instanceof
더보기
참조 변수가 참조하고 있는 인스턴스의 실제 타입을 반환함
해당 객체가 어떤 클래스나 인터페이스로부터 생성되었는지 알 수 있음
But, instanceof를 사용할 경우, 객체지향의 원칙 중 OCP(개방-폐쇄 원칙)을 위반하게 됨 → 지양하는 것이 좋
해당 객체가 어떤 클래스나 인터페이스로부터 생성되었는지 알 수 있음
class Parent{}
class Child extends Parent{}
public class InstanceofTest {
public static void main(String[] args){
Parent parent = new Parent();
Child child = new Child();
System.out.println( parent instanceof Parent ); // true
System.out.println( child instanceof Parent ); // true
System.out.println( parent instanceof Child ); // false
System.out.println( child instanceof Child ); // true
}
}
But, instanceof를 사용할 경우, 객체지향의 원칙 중 OCP(개방-폐쇄 원칙)을 위반하게 됨 → 지양하는 것이 좋
- assignment(=) operator
더보기
오른쪽 값을 왼쪽 피연산자에 할당하기 위해 사용하거나 객체 참조를 할당하기 위해 사용
- 화살표(->) 연산자
더보기
(자바8 이상) 람다식에서 익명함수 만들때 사용하며 코드가 간결해짐
// (인자, ... ) -> {method 바디}로 표기함
public interface Compare {
public int compareTo(int a, int b);
}
public static void exec(Compare compare) {
int k = 10;
int m = 20;
int value = compare.compareTo(k, m);
System.out.println(value);
}
public static void main(String[] args) {
exec((i, j)->{ // compareTo(int a, int b) 부분, Compare 인터페이스를 구현
return i+j;
});
}
- 3항 연산자
더보기
if-else 구문을 간결하게 만든 표현식이며 3개의 연산자가 물음표와 콜론으로 나뉘어져 있다
"조건 ? true 반환값 : false 반환값" 으로 표기함
"조건 ? true 반환값 : false 반환값" 으로 표기함
- 연산자 우선 순위
- Java 13. switch 연산자
더보기
자바 13부터 switch 연산자 사용시 표기법이 간결해짐
int input = 0;
swich(input) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
default:
System.out.println(3);
break:
}
// 자바13 이후 표기 ↓
swich(input) {
case 1 -> System.out.println(1);
case 2 -> System.out.println(2);
default -> System.out.println(3);
}
++ break 대신 yield 사용가능
'Backend Study > 나Java봐라~' 카테고리의 다른 글
자바 데이터 타입, 변수 그리고 배열 (0) | 2023.08.03 |
---|---|
자바 소스파일(.java)을 JVM으로 실행하는 과정 (0) | 2023.07.30 |
익명클래스 → 람다 ??? (0) | 2023.04.19 |
인텔리제이에서 shift + F10 을 누르면 생기는 일 (1) | 2023.04.13 |