읽은 책 정리/자바의정석 3판

[Java] Chapter 3 연산자

포포015 2020. 12. 7. 16:49

1.1 연산자와 피연산자

  연산자  - 연산을 수행하는 기호(+,-,*,/등)

  피연산자 - 연산자의 작업 대상 (변수,상수,리터럴,수식)

 

1.3 연산자의 종류

                     종류                   연산자                         설명
산술 연산자 + - * / % << >> 사칙연산과 나머지연산
비교연산자 > < >= <= == != 크고 작음과 같고 다름을 비교
논리연산자 && || ! & | ^ ~ 그리고(AND)와 또는(OR)으로 조건연결
대입연산자 = 우변의 값을 좌변에 저장
기타 (type) ? : inmstanceof 형변환연산자,삼항연산자,instaneceof연산자

연산자의 결합규칙

1. 산술> 비교 > 논리 >대입. 대입은 제일 마지막에 수행됨

2.단항(1) >이항(2) > 삼항 (3) . 단항 연산자의 우선순위가 이항 연산자보다 높음.

3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽임.

 

1.5 산술 변환

이항 연산자는 두 피연산자의 타입이 일치해야 연산이 가능.

대부분의 경우 두 피연산자의 타입중에서 더 큰타입으로 일치시키는데,

그이유는 작은 타입으로 형변환하면 원래의 값이 손실될 가능성이 있음.

작은타입에서 큰타입으로는 자동형변환되서 형변환연산자 생략가능 

 

2 단항 연산자

2.1 증감연산자 ++ --

증감연산자(++) 피연산자의 값을 1 증가시킨다 

감소 연산자(--) 피연산자의 값을 1 감소 시킨다

피연산자의 왼쪽에 위치하면 '전위형(prefix)', // j = ++i;     값이 참조되기 전에 증가

오른쪽에 위치하면 '후위형(postfix)'라 한다  // j = i++;      값이 참조된 후에 증가

 

3 나머지 연산자 %

 나머지 연산자는 왼쪽의 피연산자를 오른쪽 피연산자로 나누고  난 나머지 값을 결과로 반환하는 연산자 이다

 

4 비교 연산자

 4.1 대소비교 연산자 (두 피연산자의 값의 크기를 비교하는 연산자)

                          비교연산자                            연산결과
                             > 좌변 값이 크면 true,아니면 false
                             <  좌변 값이 작으면 true,아니면 false
                            >= 좌변 값이 크거나 같으면 true, 아니면 false
                            <= 좌변 값이 작거나 같으면 true, 아니면 false

 4.2 등가비교 연산자  (두 피연사의 값이 같은지 또는 다른지를 비교하는 연산자)

                           비교연산자                           연산결과
                               == 두 값이 같으면 true, 아니면 false
                               != 두 값이 다르면 true, 아니면 false

문자열의 비교 

 - 두 문자열을 비교할때는 , 비교연산자 '=='대신 equals() 라는 메서드를 사용해야함.

 

5 논리연산자 

5.1 논리연산자 - && , || , !

&& -  그리고(AND)에 해당하며 두 피연산자가 모두 true 일때만 true 

||    - 또는(OR)에 해당하며, 두 피연산자중 어느 한쪽만 ture이어도 true 

 *효율적인 연산

논리 연산자의 또 다른 특징은 효율적인 연산을 한다.

OR연산'||'의 경우 두 피연산자 중 어느 한쪽만 '참'이어도 전체결과가 '참'이므로

좌측 피연산자가 'true(참)'이면 우측 피연산자의 값은 평가 하지않음

AND 연산'&&'의 경우도 마찬가지로 좌측이 '거짓'이면 우측 피연산자값 평가 안함

 

6 그 외의 연산자 

 삼항연산자          // 조건식 ? 식1: 식2:      조건식이 true 라면 식1이 ,false라면 식2의 연산결과가 됨