자바에서 사용할 수 있는 연산자에는 산술, 대입, 관계, 조건, 논리 연산자가 있으며 데이터형을 비교하기 위한 instanceof 연산자가 있다.
|
연산자의 종류
산술(Arithmetic) | +, -, *, /, %, ++, -- |
대입(Assignment) | =, op= |
관계(relational) | <, >, <=, =>, ==, != |
조건(Conditional) | ? : |
논리(Logical) | !, &, |, &&, || |
타입비교(instanceof) | instanceof |
산술연산자(Arithmetic) 연산자
1. 피연산자에 double 형이 있으면 double형으로 연산을 수행
2. 피연산자에 float형이 잇으면 float형으로 연산을 수행
3. 피연산자에 long형이 있으면 long형으로 연산을 수행
4. 그 외에는 int형으로 연산을 수행
연산자 |
사용법 |
설명 |
+ |
a+b |
a와 b가 숫자라면 합을계산 |
- |
a-b |
a와 b가 숫자라면 차를계산 |
* |
a*b |
a와 b가 숫자라면 곱을계산 |
/ |
a/b |
a와 b가 숫자라면 나눗셈을계산 |
% |
a%b |
a와 b가 숫자라면 나눈후 나머지를 계산 |
+ |
+a |
a의 부호를 유지한다. |
- |
-a |
a의 부호를 바꾼다. |
++ |
++a, a++ |
a의 값을 1증가 |
-- |
--a, a-- |
a의 값을 1감소 |
대입 연산자
1. 변수에 값을 대입하기 위해 사용하는 연산자.
2. 대입 연산자의 종류 =, op=
3. 대입 연산자에는 a = a+b와 같이 사용하거나 이를 줄여 a+=b와 같이 사용가능
연산자 |
사용예 |
설명 |
+= |
a+=b |
a = a + b |
-= |
a-=b |
a = a - b |
*= |
a*=b |
a = a * b |
/= |
a /= b |
a = a / b |
%= |
a %= b |
a = a % b |
&= |
a &= b |
a = a & b |
^= |
a ^= b |
a = a ^ b |
|= |
a |= b |
a = a | b |
관계연산자
1. 두 피연산자의 관계를 비교하기 위해 사용하는 연산자.
2. 관계 연산자의 종류 <, >, <=, >=, ==, !=
3. 연산자의 결과는 boolean형으로 표현되는 true, false
연산자 |
사용예 |
설명 |
< |
a < b |
a가 b보다 작다면 true를 반환 |
> |
a > b |
a가 b보다 크면 true를 반환 |
<= |
a <= b |
a가 b보다 작거나 같으면 true를 반환 |
>= |
a >= b |
a가 b보다 크거나 같으면 true를 반환 |
== |
a == b |
a가 b와 같으면 true를 반환 |
!= |
a != b |
a가 b와 다르면 true를 반환 |
조건연산자
표현식이 true면 첫 번째 문장을 실행하고 문장을 달리하는 연산자이다.
1. 표현식이 true면 첫 번째 문장을 실행하고 그렇지 않으면 두 번째 문장을 실행
2. if else 문과 같은 기능을 하는 연산자
3. 3항 연산자라 부르기도 함
사용법)
(표현식)? 문장1 : 문장2
예제)
a=2
(a<2)? system.out.println("헉!") : system.out.println("똷")
a가 2보다 작다면 --> system.out.println("헉!")을 실행
a가 2보다 크다면 --> system.out.println("똷") 을 실행
논리연산자
논리 연산자는 true나 false와 같은 논리값을 비교하여 그 결과를 나타내는 연산자이다. 이에 대해 정리하면 다음과 같다.
1.true나 false와 같은 논리값을 연산하기 위한 연산자.
2. 피연산자에는 항상 논리값이 와야 하며 결과 값 또는 논리값이 됨
3. 논리 연산자의 종류 !, &, |, &&, ||
!연산자
a가 참이면 거짓
a가 거짓이면 참
변수 |
조건비교 |
결과 |
a = true |
b = !a |
FALSE |
a = false |
b = !a |
TRUE |
&연산자
피연산자가논리값을 비교하기 위한 AND 연산자로서 피연산자가 모두 TRUE이면 결과값은 TRUE가 되고 그렇지 않으면 결과값은 FALSE가 된다.
다음의 예제를 통해서 이해해보자
boolean a = true
boolean b = true
boolean c
c = a & b
결과) 참
boolean a = true
boolean b = false
boolean a = false
boolean b = true
boolean c
c = a & b
결과) 거짓
boolean a = false
boolean b = false
boolean a = true
boolean b = true
boolean c
c = a & b
결과) 참
boolean a = true
boolean b = false
boolean a = false
boolean b = true
boolean c
c = a & b
결과) 참
boolean a = false
boolean b = false
&&연산자
피연산자가논리값을 비교하기 위한 AND 연산자로서 피연산자가 모두 TRUE이면 결과값은 TRUE가 되고 그렇지 않으면 결과값은 FALSE가 된다.
다음의 예제를 통해서 이해해보자
boolean a = true
boolean b = true
boolean c
c = a & b
결과) 참
boolean a = true
boolean b = false
boolean a = false
boolean b = true
boolean c
c = a & b
결과) 거짓
boolean a = false
boolean b = false
||연산자
boolean a = true
boolean b = true
boolean c
c = a & b
결과) 참
boolean a = true
boolean b = false
boolean a = false
boolean b = true
boolean c
c = a & b
결과) 참
boolean a = false
boolean b = false
short Circuit기능
Short Circuit기능은 전체 식을 평가하지 않고 부분만 평가하고서도 그 식의 결과를 알 수 있을 때 나머지 식을 평가하지 않는 것을 말한다. 이 기능은 &&과 ||연산자에만 적용된다.
그래서 아래 코드 에서 오른쪽의 & 연산자 코드는 s가 null이기 때문에 NullPointException가 발생한다.
&& 연산자 사용시
String a = null;
if (a != null && a.length() < 7) {
System.out.println("ok");
}
& 연산자 사용시
String a = null;
if (a != null && a.length() < 7) {
System.out.println("ok");
}
타입비교(instanceof)연산자
타입 비교 연산자인 instanceof는 프로그램 실행 중에 지정된 객체가 특정 클래스의 인스턴스인지 또는 특정 인터페이스를 구현하는지를 판단하기 위한 연산자이다.
사용방법
참조변수 instanceof <클래스명, 인터페이스명>
instanceof 연산자 예제
사용예제 |
결과 |
성명 |
"test" instanceof String |
true |
String 객체 "test는 String 클래스의 인스턴스이기 때문에 true를 반환함 |
"test" instanceof object |
true |
Object 클래스는 자바의 최상위 클래스이기 때문에 이 예제의 결과는 true |
null instanceof String | false | 참조변수의 디폴트 값은 null이지만 String 객체의 인스턴스가 아니기 때문에 결과는 false |
연산자 우선순위
순위 |
연산자 |
사용예 |
1 |
., [], () |
( a + b ) |
2 |
전치형 ++, 전치형 -- 단항 +, 단항-, |
++a, --b +a, -b |
3 |
후치형++, 후치형-- |
a++, a-- |
4 |
(형 변환 유형), new |
(int) a, new |
5 |
*, /, % |
a * b, a / b, a % b |
6 |
+, - |
a + b, a - b |
7 |
<<, >>, >>> |
a<<2, a>>2, a>>>2 |
8 |
<, >, <=, >=, instanceof |
a<b, a>b, a<=b, a>=b, "test" instanceof String |
9 |
==, != |
a == b, a != b |
10 |
& |
a & b |
11 |
^ |
a ^ b |
12 |
| |
a | b |
13 |
&& |
a && b |
14 |
|| |
a || b |
15 |
? : |
(a > b)? a : b |
'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글
JAVA - 중첩 클래스 (0) | 2013.10.08 |
---|---|
JAVA 가비지 컬렉션 (2) | 2013.10.06 |
JAVA - 기타 제한자. (0) | 2013.10.04 |
JAVA - 접근 제한자. (0) | 2013.09.30 |
JAVA - 검증, 예외 (0) | 2013.09.30 |