728x90
연산자와 피연산자
연산자는 연산을 수행하는 기호(+, -, *, / 등)를 뜻하고, 피연산자는 연산자의 작업 대상(변수, 상수, 리터럴, 수식)을 뜻한다.
연산자의 종류
종류 | 연산자 | 설명 |
---|---|---|
산술 연산자 | + - * / % << >> | 사칙 연산과 나머지 연산 |
비교 연산자 | > < >= =< == != | 크고 작음과 같고 다름을 비교 |
논리 연산자 | && || ! & | ^ ~ | AND와 OR로 조건을 연결 |
대입 연산자 | = | 우변의 값을 좌변에 저장 |
기타 | (type) ?: instancoof | 형변환 연산자, 삼항 연산자, instanceof연산자 |
산술 변환
산술 변환이란 연산 수행 직전에 발생하는 피연산자의 자동 형변환을 말한다.
- 두 피연산자의 타입을 같게 일치 시킨다(보다 큰 타입으로)
- 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.
증감 연산자
증감 연산자는 피연산자에 저장된 값을 1 증가 또는 감소시킨다.
타입 | 설명 | 사용예 |
---|---|---|
전위형 | 값이 참조되기 전에 증가 | j = ++i; |
후위형 | 값이 참되된 후에 증가 | j = i++; |
class Example {
public static void main(String[] args) {
int i = 5, j = 0;
j = i++; // j = 5, i = 5
// i = 6
i = 5;
j = 0;
j = ++i; // j = 6, i = 6
}
}
식에 두 번 이상 포함된 변수에 증감연산자를 사용하면 코드가 복잡해지기 때문에 두 번 이상 사용하는 것은 피해야 한다.
비트 연산자
비트 연산자는 피연산자를 비트단위로 논리 연산한다.
연산자 | 설명 |
---|---|
| | 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻고 그 외는 0을 얻는다. |
& | 피연산자 중 양 쪽 모두 1이어야만 1을 결과로 얻고 그 외는 0을 얻는다. |
^ | 피연산자의 값이 서로 다를 때만 1을 결과로 얻고 같을 때는 0을 얻는다. |
~ | 0은 1로, 1은 0으로 바꾼다. |
쉬프트 연산자
피연자의 각 자리를 오른쪽(>>) 또는 왼쪽 (<<)으로 이동시킨다.
x << n
은 x * 2n의 결과와 같다.x >> n
은 x / 2n의 결과와 같다.
쉬프트 연산은 산술 연산보다 실행 속도 빠르긴 하지만 가독성이 떨어진다는 단점이 있다.
728x90
'기술독서 > 자바의 정석' 카테고리의 다른 글
[자바의 정석] 6장 - 객체지향 프로그래밍 Ⅰ (0) | 2022.02.14 |
---|---|
[자바의 정석] 5장 배열 (0) | 2022.02.09 |
[자바의 정석] 4장 조건문과 반복문 (0) | 2022.02.09 |
[자바의 정석] 2장 변수 (0) | 2022.02.08 |
[자바의 정석] 1장 자바를 시작하기 전에 (0) | 2022.02.08 |