연산자
연산자 :: 어떠한 기능을 수행하는 기호
피연산자 :: 연산자의 작업 대상 (변수, 상수, 리터럴, 수식)
연산자의 종류
1. 단항 연산자 :: -(음수), ++, --, ~, !
2. 이항 연산자 :: 산술 : +, -, *, /, %, <<, >>
비교 : >, <, >=, <=, ==, !=
논리 : &&, ||, &, ^, |
3. 삼항 연산자 :: 조건식 ? 식1 : 식2
4. 대입 연산자 :: =
연산자의 우선순위
연산자의 우선순위
괄호의 우선수위가 제일높다.
산술 > 비교 > 논리 > 대입
단항 > 이항 > 삼항
연산자의 연산 진행방향 : 왼쪽에서 오른쪽 (→)
단항 연산자와 대입 연산자의 진행방향 : 오른쪽에서 왼쪽(←)
예) 3*4*5 : 3*4가 먼저 계산되고, 3*4의 결과인 12*5가 계산된다.
예) x=y=3 : y에 3이 먼저 저장되고, y의 값(3)이 x에 저장된다.
예) -x+3 : 단항이 이항보다 먼저 계산된다.
예)x+3*y : 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 계산된다.
예) x+3>y-2 : 산술 연산자가 비교 연산자보다 먼저 계산된다.
예)x>3&&x<5 : 비교 연산자가 논리 연산자보다 먼저 계산된다.
예)int result=x+y*3 : 대입 연산자는 맨 뒤에 대입된다.
주의 해야 할 연산자의 우선순위 :: 아래와 같은 수식은 괄호를 사용하여 우선순이를 구분하는 것이 좋다.
1. 쉬프트 연산자 ( >>, <<, >>> ) 는 덧셈연산자보다 우선순위가 낮다.
예) x<<2+1 → x<<(2+1)과 같다.
2. ||, |(OR)는 &&, &(AND)보다 우선순위가 낮다.
예) x<-1 || x>3 && x<5 → x<-1 || (x>3 && x<5)와 같다.
증감 연산자
증가 연산자(++) :: 피연산자의 값을 1 증가시킨다.
감소 연산자(__) :: 피연산자의 값을 1 감소시킨다.
예) int i=2;
int j=0;
전위형 : j= ++i; → i=3,j=3
후위형 : j= i++; → i=3,j=2
※ ++i와 i=i+는 같은 결과를 얻지만, ++i가 속도가 더 빠르고 코드를 간결하게 작성할 수 있기 때문에 더 많이 사용한다.
비트 전환 연산자
비트 연산자 : ~
2진수 표현에서 1은 0으로, 0은 1로 바꾸는 연산자
정수형에서만 사용 가능하다
<양의 정수를 음의 정수로 표현하는 방법>
이항 연산자
- 이항 연산자의 특징 : 이항 연산자는 연산을 수행하기 전에 피연산자의 타입을 일치시킨다.
- int보다 크기가 작은 타입은 int로 변환한다 : (byte, char, short) → int
- 피연산자 중 표현번위가 큰 타입으로 형변환한다.
byte + short → int
char + int → int
float + int → float
long + float → float
float + double → double
예) byte + byte → int
byte a = 10;
byte b = 20;
byte c = a+b; //오류
int c = a+b; //정상
쉬프트 연산자
<< (왼쪽 쉬프트), >> (오른쪽 쉬프트)
쉬프트 연산자는 2의 n승으로 곱하거나 나눈 결과와 같다.
사칙연산의 곱셈이나 나눗셈보다 연산 속도가 빠르다.
예) x<<n = x*2^n
x>>n = x/2^n
8<<2 = 8*2^2
8>>2 = 8/2^2
'Web Programming > java-jsp' 카테고리의 다른 글
java 조건문 if문, 중첩if문, if~else문, swicth문 (0) | 2018.08.29 |
---|---|
비트연산자, 논리연산자, 삼항연산자, 대입연산자, 비교연산자 (0) | 2018.08.29 |
java 문자열 오버플로우 형변환 특수문자 (0) | 2018.08.29 |
java 변수 기본형 자료형 (0) | 2018.08.29 |
java 예외 try catch finally (0) | 2018.08.29 |