CH3. 연산자

a.rubz·2022년 12월 22일
0

이것이 자바다

목록 보기
3/15
post-thumbnail
post-custom-banner

이것이 자바다 스터디를 하면서 중요하게 생각되는 부분, 알게 된 점, 스터디를 진행하며 얻은 정보를 기록한다.

📝 정리

부호 연산자는 변수의 부호를 유지하거나 변경

  • + : 부호 유지
  • - : 부호 변경
  • 부호를 변경하는 것도 연산 → int 타입 변수에 대입


증감 연산자는 변수의 값을 1 증가시키거나 1 감소

  • ++i , - -i : i의 값을 1 증가, 1 감소
  • i++, i- - : 다른 연산 수행 후, i의 값을 1 증가, 1 감소


산술 연산자 → +, -, *, /, %(나머지)

✔ 산술 연산의 특징

  • 피연산자가 정수 타입 → 연산 결과 int 타입
  • 피연산자가 정수 타입, 그 중 하나가 long 타입 → 연산 결과 long 타입
  • 피연사자 중 하나가 실수 타입 → 연산 결과 실수 타입

✔ 산술 연산을 정확하게 계산하고 싶다면 실수 타입을 사용하지 않도록 → 보통 int 타입으로


오버플로우 & 언더플로우

  • 오버플로우: 타입이 허용하는 최대값을 벗어나는 것
  • 언더플로우: 타입이 허용하는 최솟값을 벗어나는 것
  • 실행에러가 발생 X, 해당 정수 타입의 최솟값 또는 최대값으로 돌아감


✔ 나눗셈, 나머지 연산에서 좌측 피연산자가 정수, 우측 피연산자가 0일 경우 예외 발생

ArithmeticException 발생

✔ 좌측 피연산자가 실수이거나 우측 피연산자가 0.0 or 0.0f이면 예외 발생 X

Infinity(무한대) or NaN(Not a Number) 발생

✔ Infinity or NaN인지 확인하는 방법 → .isInfinite() / .isNaN()


비교 연산자는 동등 또는 크기를 평가해 boolean 타입인 true/false를 산출

✔ 문자열을 비교할 때는 동등 연산자(==, ≠) 대신 equals(), !equals() 사용


논리 연산자는 논리곱(&&), 논리합(||), 배타적 논리합(^), 논리 부정(!) 연산 수행

✔ &과 |는 피연산자를 모두 평가 후 산출해서 &&, || 보다 비효율적


비트 논리 연산자는 bit 단위로 논리 연산 수행

  • 비트 연산에서 실수 타입(float, double)은 피연산자 불가

  • 비트 논리 연산자는 byte, short, char 타입 피연산자를 int 타입으로 자동 변환
    → 연산 결과도 int 타입

✔ byte 타입을 int 타입으로 변환 → Byte.toUnsignedInt()


비트 이동 연산자는 비트를 좌측 또는 우측으로 밀어서 이동시키는 연산

Math.pow(a, b)

  • a^b 연산
  • double 값으로 산출


대입 연산자는 우측 피연산자의 값을 좌측 피연산자인 변수에 대입


삼항(조건) 연산자

( 조건식 ) ? ( 1 값 또는 연산식 ) : ( 2 값 또는 연산식 )

  • true → 1 실행 / false → 2 실행


profile
🔥 개발 공부 🔥
post-custom-banner

0개의 댓글