제 1 절 연산자와 연산식
- 연산
- 데이터를 처리하여 결과를 산출하는 것
- 연산자(Operations) : 연산에 사용되는 표시나 기호(+,-,*,/,=,..)
- 피연산자(Operand) : 연산 대상이 되는 데이터(리터럴, 변수)
- 연산식(Expressions) : 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
제 2 절 연산의 방향과 우선순위
- 연산의 방향과 우선 순위
- 연산자의 우선 순위에 따라 연산된다.
- 동일한 우선 순위의 연산자는 연산의 방향이 있다.
- 증감, 부호, 비트, 논리, 대입은 오른쪽에서 왼쪽으로 연산됨 나머지는 반대
- 우선순위는 [단항>이항>삼항]과 [산술>비교>논리>대입]이다.
- 괄호()가 최우선 순위
제 3 절 단항 연산자
- 단항 연산자 : 피연산자가 1개인 연산자
- 부호 연산자 : +,-
- boolean 타입과 char 타입을 제외한 기본 타입에 사용 가능
- short 타입같은 4바이트보다 작은 타입에 부호연산자를 사용하게 되면 int 타입으로 바뀜
- 증감 연산자 : ++, - -
- ++i 와 - -i는 다른 연산을 수행하기 전에 피연산자의 값을 1 증가/감소 시킴
- i++ 와 i- -는 다른 연산을 수행한 후에 피연산자의 값을 1 증가/감소 시킴
- 연산식에 증감 연산자만 있는 경우에는 증감 연산자 위치 상관없이 1증가/감소로 동일
- 논리 부정 연산자 : ! (not이라고 읽음)
- 피연산자가 true면 false 값 산출 / false면 true 값 산출
- boolean 타입만 피연산자가 될 수 있다.
- 비트 반전 연산자 : ~
- byte, short, int, long 타입만 피연산자가 될 수 있다.
- 비트값을 반전(0→1, 1→0)시킨다.
- 부호 비트인 최상위 비트까지 반전되므로 부호가 반대인 새로운 값이 산출된다.
- 피연산자의 타입이 int 이하이면 연산의 결과는 int 타입니다.
- 비트 반전후 1을 더하면 부호가 반대인 값을 얻을 수 있다.
- 부호 연산자 : +,-
- 종류 : 부호, 증감, 부정, 비트 반전 연산자
제 4 절 이항 연산자
- 이항 연산자 : 피연산자가 2개인 연산자
- 종류 : 산술, 문자열 연결, 대입, 비교, 논리, 비트 논리, 비트 이동 연산자
- 산술 연산자 : +,-,*,/,%
- boolean 타입을 제외한 모든 기본 타입에 사용 가능
- 피연산자들 모두 정수 타입이고 int 타입보다 크기가 작으면 산출 타입은 int 이다.
- 피연산자들 모두 정수 타입이고 long 타입이 있을 경우 산출 타입은 long 이다.
- 피연산자중 실수 타입(float, double)이 있을 경우 산출 타입은 실수 타입이다.
✅ 오버플로우로 인해 잘못된 값이 산출되는 것을 방지해야함
- 리터럴을 사용할 경우 연산 후의 값이 저장될 수 있는 충분한 타입을 사용
- 런타임시 입력된 값일 경우 산술 연산자를 직접 사용하지 않는 것이 좋다. 메소드를 작성해서 오버플로우를 미리 조사하고 예외 처리한다.
✅ 정확한 계산은 정수를 사용
- 정확하게 계산해야할 때는 부동소수점(실수) 타입을 사용하지 않는 것이 좋다.
✅ NaN과 Infinity 연산을 조심
✅ 입력된 문자열을 숫자로 변환할 때 NAN인지 검사
-
- 문자열 연결 연산자 : +
- 피연산자중 문자열이 있으면 문자열로 결합시킨다.
- 비교연산자 : ==, ! =, <, >, < =, > =
- 대소(<,< =, >,> =) 또는 동등(==,! =) 비교해서 boolean 타입인 true/false를 산출
- 동등 바교 연산자는 모든 타입에 사용
- 크기 비교 연산자는 boolean 타입을 제외한 모든 기본 타입에 사용
- 흐름 제어문인 조건문(if), 반복문(for, while)에서 주로 이용되어 실행 흐름을 제어힐 때 사용
- 문자열 비교
- String 타입의 문자열을 비교할 떄에는 대소(<,< =, >,> =) 연산자를 사용할 수 없다.
- 동등(==,! =) 비교 연산자는 사용할 수 있으나, 문자열이 같은지, 다른지를 비교하는 용도로는 사용하지 않는다.
- 🔔 문자열 비교는 equals() 메소드를 사용해야 한다.
- 논리 연산자 : &&, ||, &, |, ^, !
- 논리곱(AND : && or &), 논리합(OR : || or |), 배타적 논리합(XOR : ^) 그리고 논리 부정(NOT : !) 연산을 수행 (&&와 ||는 앞이 flase면 바로 연간 값 반환. 뒤는 검정 안해서 더 빠름)
- AND : 둘 다 true 일 때만 true
- OR : 둘 다 false 일 때만 false
- XOR : 둘 중 하나는 true, 하나는 false 일 때만 true
- NOT : true이면 false, false이면 true
- 피연산자는 boolean 타입만 사용할 수 있다.
- 논리곱(AND : && or &), 논리합(OR : || or |), 배타적 논리합(XOR : ^) 그리고 논리 부정(NOT : !) 연산을 수행 (&&와 ||는 앞이 flase면 바로 연간 값 반환. 뒤는 검정 안해서 더 빠름)
- 비트 연산자 : &, |, ^, <<, >>, >>>
- 비트(bit)단위로 연산을 한다. 즉 0과 1이 피연산자가 된다.
- 0과 1로 표현이 가능한 정수 타입만 비트 연산을 할 수 있다.
- 실수 타입인 float라 double은 비트 연산을 할 수 있다.
- 종류는 비트 논리 연산자(&,|,^,~), 비트 이동 연산자(<<,>>,>>>) 가 있다.
- 비트 논리 연산자(&,|,^,~)
- 피연산자가 boolean 타입일 경우 → 일반 논리 연산자
- 피연산자가 정수 타입일 경우 비트 논리 연산자
- 비트 연산자는 피연산자를 int타입으로 자동 타입 변환한 후 연산을 수행한다.
- 비트 이동(쉬프트) 연산자(<<,>>,>>>)
- 정수 데이터의 비트를 좌특 또는 우측으로 밀어서 이동시키는 연산을 수행
- 비트(bit)단위로 연산을 한다. 즉 0과 1이 피연산자가 된다.
- 대입 연산자 : =,+=, -=, *=, /=, %=, &=, ^=, |=, << =, >> =, >> =
- 오른쪽 피연산자의 값을 좌측 피연자인 변수에 저장
- 종류는 단순 대입 연산자, 복합 대입 연산자가 있다.
- 문자열 연결 연산자 : +
제 5 절 삼항 연산자
- 조건 연산식 : 조건식에 따라 콜론(:) 앞 뒤의 피연산자가 선택
'Java > Java Basics' 카테고리의 다른 글
인텔리제이 파일 빨간색 원 표시 & invaild source release:16 오류 해결 (0) | 2022.01.17 |
---|---|
04. 자바(Java) 조건문과 반복문 / [확인문제] (0) | 2022.01.03 |
02. 자바(Java) 변수와 타입 (0) | 2022.01.01 |
인텔리제이(lntelliJ) Auto Import 하기 = 이클립스(Eclipse) Ctrl+Shift+O (0) | 2021.12.31 |
01. 자바(Java) 시작하기 (0) | 2021.12.31 |
댓글