
연산자 우선순위

[최]우선 | ( ) 괄호 |
[단]항 | ~ , ! , + , -, ++ , -- |
[산]술 | * , / , % , + , - , |
[쉬]프트 | << , >> , >>> |
[관]계(비교) | > , < , >= , <= , == , != |
[논]리 | 비트논리 : & , ^ , ! , | 인발논리 : && , || |
[삼]항 | ? : |
[대]입 | 산술대입 =. += , -= , *= , /=, %= 쉬프트대입 <<= , >>=, >>>= 비트논리대입 &=, != , ^= |
[콤]마 | , 콤마 |
- 최단/산쉬관논/삼대콤으로 암기해두면 복잡한 수식 있을 때 괄호를 줄일 수 있음
- 이항 연산자에는 산술, 비교, 논리 연산자가 포함됨
- 단항 > 이항> 삼항
- 단항, 대입연산자만 진행방향이 왼쪽이다
- 대입연산자는 항상 마지막
//단항연산자 : 증감 ==> ++, -- , ~ ,.....
int x = 10, y;
// y = x++; // 후위연산 : 대입먼저, 연산나중
// y = ++x; // 전위연산 : 연산먼저, 대입나중
++x; // x++;
y = x;
int x = -7, y ;
y = ~x;
- 증감연산자 단독으로 쓰인다면 ++x(전위)나 x++(후위)는 차이 없다
- 비트전환연산자 ~는 정수형에만 사용가능하며 -(원래값 + 1)이 출력됨
정수 연산(+ - * / % ^) 정수는 정수임
ex) 7/3 = 2 몫을 취함, 7%3 = 1 나머지 취함
이항연산자
이항연산자는 연산 수행하기 전에 피연산자의 타입을 일치시킨다
int보다 크기 작은 타입은 int로 변환
그 외 표현범위가 큰 타입으로 형변환
public class OperatorTest {
public static void main(String[] args) {
// shift 연산자 : <<, >>, <<<
int x = 8, result;
// result = x << 2; // left shift : 원래값 * 2^bit수 ==> 8 * 4 = 32
result = x >> 3; // right shift : 원래값 / 2^bit수 ==> 8 / 2^3 = 1
// System.out.println(" left shift result : " + result);
System.out.println(" right shift result : " + result);
}
}
shift 연산자
<<, >>, <<<
x << n(left shift)은 $x \ast 2^{n}$과 같다
x >>n(right shift)은 $\frac{x}{2^{n}}$과 같다
비교연산자
비트연산자
논리연산자
삼항연산자
대입연산자
'Java' 카테고리의 다른 글
[Java]객체지향 프로그래밍 I (0) | 2025.04.06 |
---|---|
[Java]배열(array) (0) | 2025.03.25 |
[Java]제어문(조건문, 반복문) (0) | 2025.03.23 |
[Java]변수(variable) (0) | 2025.03.20 |
[Java]컴파일, 경로설정, 메모리 영역 (0) | 2025.03.19 |