[이것이 자바다] 02. 연산자
이번에는 자바의 연산자에 대해 정리한 내용입니다.
1. 종류와 우선순위
- 연산 방향
대부분의 왼쪽 >> 오른쪽 진행
부호, 대입, 증감 연산자 : 왼쪽 << 오른쪽 진행합니다. - 최우선 연산자
.(접근),[](배열),()(메서드 호출 및 우선순위 지정) - 핵심 우선순위
산술 > 비교 > 논리 > 대입
괄호()우선순위 명확히 지정 가능합니다.2. 단항 연산자
- 피연산자가 하나인 연산자입니다.
부호(+,-), 증감(++,--), 논리 부정(!)증감 연산자 (
++,--) - 전위 연산 (
++a,--a): 1 증가/감소 >> 다른 연산 수행 - 후위 연산 (
a++,a--): 다른 연산 수행 >> 값 1 증가/감소 - 순서에 따른 명확한 결과 차이가 있습니다.*
3. 산술 연산자
- 사칙연산(
+,-,*,/), 나머지(%) 연산정수 연산의 함정
- 정수끼리 연산의 결과 항상 정수입니다.
소수점 이하는 버려짐 - 올바른 실수 결과를 얻으려면?
연산에 참여하는 값 중 하나 이상을 반드시 실수(float, double) 타입으로 만들어야 정수 끼리 안됩니다.Infinity와NaN - 0으로 나누거나, 계산 불가능한 연산을 할 때 발생하는 특수 값입니다.
Infinity(무한대)
실수를 0으로 나눌때 발생NaN(Not a Number)
연산의 결과가 숫자가 아닐때 발생4. 비교 연산자
두 피연산자 비교 >true/false반환합니다.- 기본 타입(primitive type):
==
내부 값 자체 비교 - 참조 타입(reference type):
==
주소값 비교
두 변수가 가리키는 객체 주소 비교합니다.문자열 내용 비교
==
값 자체가 아닌 주소를 비교 >> 객체 일치 여부 판단.equals()메서드
문자열 객체 주소가 아닌 내부 값 자체 일치 비교합니다.5. 논리 연산자
&&vs&/||vs|&,|: 양쪽 피연산자 모두 평가합니다.&&,||(Short-Circuit, 단락 회로 평가) : 하나로 결과가 결정되면 뒤쪽은 무시합니다.
불필요한 연산 생략 >> 성능향상
NullPointerException방지6. 삼항(조건) 연산자
(조건식) ? 값1(true) : 값2(false)
간단한if-else문 한 줄로 축약가능합니다.7. 비트 연산자
- 숫자를 2진수 비트(bit) 단위로 직접 조작합니다.
비트 논리 연산자 (
&,|,^,~) - 두 피연산자 2진수로 변환 >> 각 자리 개별적으로 비교 연산
&(AND)
두 비트가 모두 1일 때만 1|(OR)
두 비트 중 하나라도 1이면 1^(XOR)
두 비트가 서로 다르면 1~(NOT)
0은 1로, 1은 0으로비트 이동 연산자 (
<<,>>,>>>)- 2진수 비트를 지정된 수만큼 이동
a << b
왼쪽으로 1칸 이동 : $a * 2^b$a >> b
오른쪽으로 1칸 이동 : $a / 2^b$a >>> b
오른쪽으로 이동, 빈자리 0으로
'Language > JAVA' 카테고리의 다른 글
| [이것이 자바다].ch5.클래스 (0) | 2025.12.26 |
|---|---|
| [이것이 자바다].ch4.참조타입 (3) | 2025.12.25 |
| [이것이 자바다].ch3.조건문과 반복문 (0) | 2025.12.25 |
| [이것이 자바다].ch1.변수와 타입 (0) | 2025.09.28 |
| [이것이 자바다].ch0. (0) | 2025.09.28 |