1. 연산자(operator)
- 연산을 수행하는 기호
1.1 연산자와 피연산자
- 연산자 : 연산을 수행하는 기호
- 피연산자 : 연산자의 작업 대상
1.2 식과 대입연산자
- 식 : 연산자와 피연산자를 조합하여 계산하고자하는 바를 표현한 것, 끝에 ';'를 붙힌다.
- 대입연산자 : '=', 변수와 같이 값을 저장할 수 있는 공간에 결과를 저장
1.3 연산자의 종류
종류 | 연산자 | 설명 |
---|---|---|
산술 연산자 | + - * / % << >> | 사칙 연산(+,-,*,/)과 나머지 연산(%) |
비교 연산자 | > < >= <= == != | 크고 작음과 같고 다름을 비교 |
논리 연산자 | && || ! & | ^ ~ | '그리고(AND)'와 '또는(OR)'으로 조건을 연결 |
대입 연산자 | = | 우변의 값을 좌변에 저장 |
기 타 | (type) ?: instanceof | 형변환 연산자, 삼항 연산자, instanceof 연산자 |
1.4 연산자의 우선순위와 결합규칙
- 산술 > 비교 > 논리 > 대입
- 단항 > 이항 > 삼항
- 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.
→ 헷갈릴수 있으므로 괄호('(', ')')를 사용하여 우선수위를 나타내는것이 낫다.
1.5 산술 변환
- 두 피연산자의 타입이 일치해야 연산이 가능하므로, 일반적으로 두 피연산자 타입 중 더 큰 타입으로 일치시켜준다.( int보다 작은 타입일 경우 int로 변환 )
2. 단항 연산자
2.1 증감 연산자 ++ --
- 증가 연산자(++) : 피연산자의 값을 1 증가시킨다.
- 감소 연산자(--) : 피연산자의 값을 1 감소시킨다.
타입 | 설명 | 사용 예 |
---|---|---|
전위형 | 값이 참조되기 전에 증가시킨다. | j = ++i; |
후위형 | 값이 참조된 후에 증가시킨다. | j = i++; |
가운데 |
cf) 식에 두 번 이상 포함된 변수에 증감연산자를 사용하는 것을 피해야 한다.
2.2 부호 연산자 + -
- 부호 연산자 '-'는 피현산자의 부호를 반대로 변경한다.
3. 산술 연산자
3.1 사칙 연산자 + - * /
-
- / 연산자가 + - 연산자 보다 우선순위가 높다.
3.2 나머지 연산자 %
- 왼쪽의 피연사자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환한다(오른쪽 피연사의 부호는 무시한다.).
4. 비교 연산자
- 연산결과는 true와 false 중 하나이다.
4.1 대소비교 연산자 <, >, <=, >=
4.2 등가비교 연산자 ==, !=
cf) equals() : 문자열 비교 *
*equalsIgnoreCase() : 문자열 비교(대소문자 비교 x)
5. 논리 연산자
5.1 논리 연산자 - &&, ||, !
- && : 피연산자 양쪽 모두 true이면 true를 결과로 얻는다.
- || : 피연사 중 하나만 true 여도 true를 결과로 얻는다.
- ! : 피연산자가 true이면 false를, false이면 true를 반환한다.
&&과 ||을 효율적인 연산을 하므로, 왼쪽에서 먼저 계산한 값에 따라 뒤쪽에있는 연산이 진행이 안될수도 있다.
5.2 비트 연산자 & | ^ ~ ! << >>
- & : 피연산자 모두 값이 1이면 결과를 1로 반환
- | : 피연산자 중 한 쪽의 값이 1이면 결과를 1로 반환
- ^ : 피연산자의 값이 서로 다르면 결과를 1로 반환
- ~ : 피연사자를 2진수로 표현했을때, 0->1로 1->0으로 바꾼다.
- << : 피연산자를 2진수로 표현했을때, 왼쪽으로 이동을 시킨다. 저장범위가 넘어난 값들은 버려지고 빈자리는 0으로 채워진다.
- >> : 피연산자를 2진수로 표현했을때, 오른쪽으로 이동을 시킨다. 저장범위가 넘어난 값들은 버려지고 빈자리는 0으로 채워진다. 음수일때는 1로 채워진다.
x<<n은 x*2^n과 같다
x>>n은 x/2^n과 같다
6. 그 외의 연산자
6.1 조건 연산자 ? :
- 조건식 ? 식1 : 식2 → 조건식이 참이면 식1, 거짓이면 식2를 실행한다.
6.2 대입 연산자
6.2.1복합 대입 연산자
- 연산자(op)와 결합한 'op ='형태이다.
- ex) i += 3; -> i = i + 3;
'LANGUAGE > [JAVA]' 카테고리의 다른 글
Chapter07 객체지향 프로그래밍II(Object-oriented Programming II) (0) | 2021.08.24 |
---|---|
Chapter06 객체지향 프로그래밍 I(Object-oriented Programming I) (0) | 2021.08.20 |
Chapter05 배열(array) (0) | 2021.08.18 |
Chapter04 조건문과 반복문 if, switch, for, while statement (0) | 2021.08.17 |
Chapter02 변수(variable) (0) | 2021.08.11 |