일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- regexp_substr함수
- python #json
- 인프런 #assertThat #오류
- oracle #
- 데이터집계
- django #db #오류
- javascript #자바스크립트 #공백제거함수
- react #리액트 #JSX
- decode함수
- react #mini_project #study
- blockscope
- 인텔리제이 #intelliJ #패키지생성 #package
- react #props #state
- db #with절 #오라클 #oracle #쿼리 #query
- Django #장고 #에러해결방법 #templatetags
- springboot #에러
- JSP #Java #JQuery
- react #event
- SQL
- flutter #flutter개념 #특징 #장단점
- react #ref
- Django #Static
- JPA #Springboot #java
- db #mysql #mariadb
- yarn #오류
- MariaDB #Error
- PostgreSQL
- git #삭제
- DTO #VO
- kotlin #코틀린 #SpringDataJPA단점
- Today
- Total
감자의 개발공부 일지
[JAVA] 연산자 본문
<연산자와 연산식>
1. 연산자(Operations)
-> 연산에 사용되는 표시나 기호(+, - , *, / , %, =, …)
2. 피연산자(Operand)
-> 연산 대상이 되는 데이터(리터럴, 변수)
3. 연산식(Expressions)
-> 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
4. 연산자의 종류
연산자 종류 | 연산자 | 피연산자 수 | 산출값 타입 | 기능 설명 |
산술 | +, -, *, /, % | 이항 | 숫자 | 사칙연산 및 나머지 계산 |
부호 | +, - | 단항 | 숫자 | 음수와 양수의 부호 |
문자열 | + | 이항 | 문자열 | 두 문자열을 연결 |
대입 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= | 이항 | 다양 | 우변의 값을 좌변의 변수에 대입 |
증감 | ++, -- | 단항 | 숫자 | 1 만큼 증가/감소 |
비교 | ==, !=, >, <, >=, <=, instanceof | 이항 | boolean | 값의 비교 |
논리 | !, &, |, &&, || | 단항 이항 |
boolean | 논리적 NOT, AND, OR 연산 |
조건 | (조건식) ? A : B | 삼항 | 다양 | 조건식에 따라 A 또는 B 중 하나를 선택 |
비트 | ~, &, |, ^ | 단항 이항 |
숫자 blooean |
비트 NOT, AND, OR, XOR 연산 |
쉬프트 | >>, <<, >>> | 이항 | 숫자 | 비트를 좌측/우측으로 밀어서 이동 |
<연산의 방향과 우선순위>
1. 연산의 방향과 우선순위
연산자 | 연산 방향 | 우선순위 |
증감(++, --), 부호(+,-), 비트(~), 논리(!) | <----- | 높음 낮음 |
산술(*,/,%) | -----> | |
산술(+, -) | -----> | |
쉬프트(<<, >>, >>>) | -----> | |
비교(<, >, <=, >=, instanceof) | -----> | |
비교(==, !=) | -----> | |
논리(&) | -----> | |
논리(^) | -----> | |
논리(|) | -----> | |
논리(&&) | -----> | |
논리(||) | -----> | |
조건(?:) | -----> | |
대입(=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=) | <----- |
<단항 연산자>
1. 단항연산자란?
-> 피연산자가 1개인 연산자
2. 단항 연산자의 종류
(1) 부호 연산자: +, -
-> boolean 타입과 char 타입을 제외한 기본 타입에 사용 가능
-> 부호 연산자의 산출 타입은 int
(2) 증감 연산자: ++, --
-> 변수의 값을 1증가 시키거나(++) 1 감소 (--) 시키는 연산자
-> 증감 연산자가 변수 뒤에 있으면 다른 연산자 먼저 처리 후 증감 연산자 처리
(3) 논리 부정 연산자: !
-> Boolean type 에만 사용 가능
-> 피연산자가 true면 false 값을 산출하고, 피연산자가 false이면 true 값을 산출
(4) 비트 반전 연산자: ~
-> byte, short, int, long 타입만 피연산자가 될 수 있다.
-> 비트값을 반전 시킨다.
<이항 연산자>
1. 이항 연산자란?
-> 피연산자가 2개인 연산자
2. 이항연산자의 종류
(1) 산술연산자: +,-,*,/,%
-> boolean 타입을 제외한 모든 기본 타입에 사용 가능
-> 결과값 산출할 때 Overflow주의
-> 정확한 계산은 정수를 사용
-> NaN과 Infinity 연산은 주의할 것
(2) 문자열 연결 연산자: +
-> 피연산자 중 문자열이 있으면 문자열로 결합
(3) 대입 연산자: =,+=,-=,*=,/=,%=,&=,^=,|=,<<\,>>=,>>>=
-> 오른쪽 피연산자의 값을 좌측 피연산자인 변수에 저장
-> 모든 연산자들 중 가장 낮은 연산 순위 -> 제일 마지막에 수행
-> 단순대입연산자, 복합대입연산자
구분 | 연산식 (변수 대입연산자 피연산자) | |
단순 대입 연산자 | = | 피연산자의 값을 변수에 저장 |
복합 대입 연산자 | += | 피연산자의 값을 변수의 값과 더한 후 다시 변수에 저장 (변수=변수+피연산자) |
-= | 피연산자의 값을 변수의 값에서 뺀 후에 다시 변수에 저장 (변수=변수-피연산자) | |
*= | 피연산자의 값을 변수의 값과 곱한 후에 다시 변수에 저장 (변수=변수*피연산자) | |
/= | 피연산자의 값과 변수의 값을 곱한 후에 다시 변수에 저장 (변수=변수*피연산자) | |
%= | 피연산자의 값과 변수의 값을 나눈 후에 나머지를 변수에 저장 (변수=변수/피연산자) | |
&= | 피연산자의 값과 변수의 값을 & 연산 후 결과를 변수에 저장 (변수=변수&피연산자) | |
|= | 피연산자의 값과 변수의 값을 | 연산 후 결과를 변수에 저장 (변수=변수|피연산자) | |
^= | 피연산자의 값과 변수의 값을 ^ 연산 후 결과를 변수에 저장 (변수=변수^피연산자) | |
<<= | 피연산자의 값과 변수의 값을 << 연산 후 결과를 변수에 저장 (변수=변수<<피연산자) | |
>>= | 피연산자의 값과 변수의 값을 >> 연산 후 결과를 변수에 저장 (변수=변수>>피연산자) | |
>>>= | 피연산자의 값과 변수의 값을 >>> 연산 후 결과를 변수에 저장 (변수=변수>>>피연산자) |
(4) 비교 연산자: <,<=,>,>=,==,!=
-> 대소(<, <=, >, >=) 또는 동등(==, !=) 비교해 boolean 타입인 true/false 산출
-> 동등 비교 연산자는 모든 타입에 사용
-> 크기 비교 연산자는 boolean 타입 제외한 모든 기본 타입에 사용
-> 흐름 제어문인 조건문(if), 반복문(for, while)에서 주로 이용
(5) 논리 연산자: &&,||,&,|,^,!
-> 논리곱(&&), 논리합(||), 배타적 논리합(^), 논리 부정(!) 연산 수행
-> 피연산자는 boolean 타입만 사용 가능
구분 | 연산식 | 설명 |
AND (논리곱) |
&& 또는 & |
피연산자 모두가 true일경우에만 연산 결과는 true |
OR (논리합) |
|| 또는 | |
피연산자 중 하나만 true이면 연산 결과는 true |
XOR (배타적 논리합) |
^ | 피연산자가 하나는 true이고 다른 하나가 false일 경우에만 연산 결과는 true |
NOT (논리부정) |
! | 피연산자의 논리값을 바꿈 |
(6) 비트 논리 연산자:&,|,^,~
-> 피연산자가 boolean타입일 경우 일반 논리 연산자
-> 피연산자가 정수 타입일 경우 비트 논리 연산자로 사용
-> 비트 연산자는 피연산자를 int타입으로 자동 타입 변환 후 연산 수행
구분 | 연산식 | 설명 |
AND (논리곱) |
& | 두 비트가 모두가 1일 경우에만 연산 결과는 1 |
OR (논리합) |
| | 두 비트 중 하나만 1이면 연산 결과는 1 |
XOR (배타적 논리합) |
^ | 두 비트 중 하나는 1 이고 다른 하나가 0일 경우 연산 결과는 1 |
NOT (논리부정) |
~ | 보수 |
(7) 비트 이동 연산자: <<,>>,>>>
-> 정수 데이터의 비트를 좌측 또는 우측으로 밀어 이동시키는 연산 수행
<삼항 연산자>
-> 세 개의 피연산자를 필요로 하는 연산자
-> 앞의 조건식 결과에 따라 콜론 앞 뒤의 피연산자 선택 -> 조건 연산식
📕 참고
이것이 자바다 / 신용권 / 한빛미디어(2015)
'JAVA' 카테고리의 다른 글
[Java] JSP, J Query, Java의 차이점 (0) | 2023.01.04 |
---|---|
[JAVA] 변수 ~ 타입변환 (0) | 2022.07.11 |
[JAVA] JAVA의 특징 (0) | 2022.07.06 |