연산 시 주의사항
- 자바의 연산자는 연산대상이 될 수 있는 데이터 형이 정해져 있음
- 범위를 넘는 연산에 대해서는 에러가 일어나지 않고, 단지 연산결과에 이상한 값이 들어가게 됨
- 자바에서의 연산에러는 오로지 0으로 나누거나 나머지를 구할때 일어남
byte a = 10;
a << 3
/*
10은 00001010 이다.
3만큼 왼쪽으로 이동하면 00001010000 이 된다.
*/
0. 연산자의 우선 순위

1. 최우선 연산자
() : 괄호연산자
. : 참조 연산자 (ex. System.out.print 에서 단어 사이사이의 '.')
[] : 배열 첨자 연산자
2. 단항 연산자
+ - : 부호 연산자 [부호 값을 나타냄]
! : 논리 부정 연산자 [true, false 간의 값을 부정]
(ex.boolean a = true; !a -> false a가 가지고 있는 값을 부정하겠다는 뜻)
~ : 비트 부정 연산자 [숫자 데이터의 비트 부정]
(ex.byte a = 10; 컴퓨터에 들어갈때는 8byte 사이즈인 00001010으로 들어감, ~a -> 11110101 )
++a : 전위 증가 [연산 전에 a의 값 1 증가]
a++ : 후위 증가 [연산 후에 a의 값 1 증가]
--a : 전위 감소 [연산 전에 a의 값 1 감소]
a-- : 후위 감소 [연산 후에 a의 값 1 감소]
int a = 10;
int b = ++a;
// 2행의 ++a는 전위 증가 연산자로 a+1=11이다.
int a = 10;
int b = a++;
/*
6행의 a++은 후위 증가 연산자로
a의 값을 먼저 b에 넣어준다.
6행의 b = 10;
이후 b에게 값을 주고 난 뒤 a의 값을 1 증가시켜준다.
6행의 a = 11;
*/
// 연산기호가 변수의 뒤에 올때 (후위 연산자)는 연산자의 우선순위가 맨 뒤로 간다.
(Cast) : Cast 연산자
int a = 10;
byte b = (byte)a;
// 3행의 (byte)는 cast연산자로 우선순위가 빠르다.
instanceof : 다형성 연산자 [true, false]
3. 산술 연산자
* : 두 수의 곱 (ex.a * b)
/ : 나눗셈(몫) (ex.a / b)
% : 나눗셈(나머지) (ex.a % b)
+ : 두 수의 합 (ex.a + b)
- : 두 수의 차 (ex.a - b)
4. shift 연산자
<< : Left shift [a를 b만큼 왼쪽으로 shift]
(ex. a << b)

>> : Right shift [a를 b만큼 오른쪽으로 shift]
(ex. a >> b)

>>> : 부호 없는 Right shift [a를 b만큼 오른쪽으로 shift]
(ex. a >>> b)

5. 비교 관계 연산자

6. 비트 연산자

7. 논리 연산자

8. 삼항 연산자

int a = 10;
int b = 5;
a > b ? "크다" : "작다" (a의 값이 b보다 크면 "크다"를 출력, 아니면 "작다"를 출력)
9. 배정대입 연산자

10. 직접 해보기
전위 증감 연산자

후위 증감 연산자

배정 대입 연산자

'Study > Java' 카테고리의 다른 글
Java 제어문과 반복문_반복문 (0) | 2022.12.28 |
---|---|
Java 제어문과 반복문_제어문 (0) | 2022.12.27 |
Java 기초_기본 입출력 (0) | 2022.12.23 |
Java 기초_자료형(기본형, 참조형), 변수 및 상수 소개 (0) | 2022.12.23 |
Java 기초_개발환경 구축 (0) | 2022.12.21 |