문자열 연결 연산자(+)
: 문자열을 서로 결합하는 연산자
- 문자열과 숫자가 혼합된 + 연산자는 왼쪽에서부터 오른쪽으로 연산이 진행된다.
1 2 | String = "JDK" + 3 + 30; //JDK33.0 String = 3 + 3.0 + "JDK"; //6.0JDK | cs |
비교연산자 (<, <=, >, >=, ==, !=)
: 대소(<, <=, >, >=) 또는 동등(==, !=) 을 비교해서 boolean 타입인 true/false를 산출한다
구분 |
연산식 |
설명 |
||
동등 비교 |
피연산자1 |
== |
피연산자2 |
두 피연산자의 값이 같은지를 검사 |
피연산자1 |
!= |
피연산자2 |
두 피연산자의 값이 다른지를 검사 |
|
크기 비교 |
피연산자1 |
> |
피연잔사2 |
피연산자1 이 큰지를 검사 |
피연산자1 |
>= |
피연산자2 |
피연산자1 이 같거나 큰지를 검사 |
|
피연산자1 |
< |
피연산자2 |
피연산자1이 작은지 검사 |
|
피연산자1 |
<= |
피연산자2 |
피연산자1이 작거나 같은지를 검사 |
: 피연산자가 char 타입이면 유니코드 값으로 비교 연산을 수행한다.
: 비교연산자에서도 연산을 수행하기전에 타입변환을 통해 피연산자의 타입을 일치시킨다.
- 0.1 == 0.1f 와 같은 경우 결과값이 false 인데 이유는 0.1f 는 근사값으로 표현되어 0.1 보다 큰 값으로 나온다.
: String 타입의 문자열을 비교할때는 대소연산자(<,<=,>,>=)를 사용할 수 없고, 동등(==, !=) 비교 연산자는 사용할 수 있으나
문자열이 같은지, 다른지를 비교하는 용도로는 사용되지 않는다.
- 자바는 문자열 리터럴이 동일하다면 동일한 String 객체를 참조하도록 되어 있다.
1 2 3 | String s1 = "자바"; String s2 = "자바"; // s1와 s2 는 같은 번지값을 가지고 있다. String s3 = new String ("자바"); //새로운 객체가 생성된 것이라서 s1,s2와는 다른 번지값을 가지고 있다. | cs |
* 동일한 String 객체이든 다른 String 객체이든 문자열만을 비교하고 싶다면 equals() 메소드를 사용한다.
논리 연산자 (&&, ||, &, |, ^, !)
: boolean 타입만 사용할 수 있다
구분 |
설명 |
AND(논리곱 : && 또는 &) |
피연사자 모두가 true 일 경우에만 연산 결과가 true |
OR (논리합 : || 또는 |) |
피연산자 중 하나만 true이면 연산 결과는 true |
XOR (배타적논리합 : ^) |
피연산자가 하나는 true 이고 다른 하나가 false 일 경우에만 연산결과가 true |
NOT(논리부정 : !) |
피연산자의 논리값을 바꿈 |
: &&와 & 는 산출결과가 같지만 연산과정이 다르다. && 는 앞의 피연산자가 false 이면 뒤의 피연산자를 평가하지 않고 바로 false로 산출을 낸다.
그러나 &은 앞의 피연산자가 false여도 뒤의 피연산자를 평가한 다음 false로 산출을 낸다. 따라서 && 이 더 효율적으로 동작한다.
|| 와 |도 마찬가지이다.
- 논리 연산은 흐름 제어문인 조건문(if), 반복문(for, while) 등에 주로 이용된다.