우선순위같은 간단한 코드를 테스트하기엔 Jshell도 좋다. 터미널에서 jshell
또는 IntelliJ에서 tools - run jshell로 실행 가능하다.
. [] ()
: 참조연산자, 배열 첨자, 괄호가 제일 높다! ! ~ & | ^ - ++ --
: 단항연산자도 우선순위가 높다. 부정 > bit > 부호 > 증감 순으로 우선순위를 가진다.조금 복잡하지만 단항 > 산술 > 비교 > 논리 > 삼항 > 대입이기 때문에 자연스럽다!
+ - * / %
* / %
간의 우선순위는 동등하고 + -
보다는 높다.++, --
int a = 3;
int b = 3;
a++ == 3; true
++b == 3; false
&: and
|: or
^: xor
~: bitwise compliment 보수 연산자(?) 비트의 1과 0을 바꿈
<<: left shift
>>: right shift
>>> : zero fill right shift: 왼쪽을 0으로 채우므로 음수의 경우 부호가 바뀐다.
== != > < >= <=
&& || !
null instanceof Object //false
String a = "hello"
a instanceof Object //true
List <Integer> b = new ArrayList()<>;
b instanceof List //true
b instanceof ArrayList //true
int a = x > 3 ? 1 : 2
yield
연산자가 추가되었다! python의 for -else 에 이어 매우 신기한 문법이 등장했다.->
오퍼레이터도 추가됨 Day day = Day.WEDNESDAY;
System.out.println(
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
default -> throw new IllegalStateException("Invalid day: " + day);
}
);
취미코딩하다 시간이 많이 흘러 이번주도 날림 공부했다 ㅜㅜ.