모르는 것만 짧고 빠르게 정리한 노트입니다.
1.4 연산자 우선순위
- instanceof 는 비교연산자 <, >, <=, >= 와 우선순위가 동일하다.
1.5 일반 산술 변환
- 피연산자의 타입이 다르면, 더 큰 타입으로 자동 형변환된다. (overflow 방지)
- 피연사자의 타입이 int 보다 작은 타입이면 int 로 변환된다.
3.1 사칙 연산자
- 상수 또는 리터럴 간의 연산은, 컴파일러가 최적화를 진행한다.
char c1 = 'a'
// char c2 = c1 + 1; // compile error! 명시적 형변환 필요!
char c2 = 'a' + 1; // java complier 에 의해 'b'로 치환됨.
3.2 나머지 연산자
- 우항은 0이 될 수 없다.
- 음수도 가능한데, 양수일 때와 절대값이 동일하고 부호는 왼쪽 피연산자를 따른다.
5.1 논리 연산자
- short circuit evaluation : 앞 식을 평가한 값으로 전체의 결과가 정해지는 경우, 더이상 계산을 하지 않음.
5.2 비트 연산자
- 비트 전환 연산자 ~ : 부호있는 타입의 연산 결과로, 1의 보수를 얻는다. int 보다 작은 경우 int 로 자동 형변환 후 연산한다.
- 쉬프트 연산자 : arithmetic shift / logical shift, 피연사자 타입을 일치시킬 필요가 없기 때문에, 좌측 피연사자가 int 보다 작은 경우는 int 로 자동 형변환 된다.
6.1 삼항 연산자
- 두 식의 타입이 다른 경우, 산술변환 발생.
'Java > Java의 정석' 카테고리의 다른 글
[Java의 정석] 06. 객체지향 프로그래밍 (0) | 2022.03.08 |
---|---|
[Java의 정석] 05. 배열 (0) | 2022.03.05 |
[Java의 정석] 04. 조건문 (0) | 2022.03.05 |
[Java의 정석] 02. 변수 (0) | 2022.03.02 |
[Java의 정석] 01. 자바란 (0) | 2022.03.02 |