자바 연산자

Created:

자바가 제공하는 다양한 연산자를 학습

산술 연산자

산술 연산자는 총 5개이며 boolean 타입을 제외한 모든 기본타입에 사용 가능하다.

연산자 설명
+ 덧셈연산
- 뺄셈연산
* 곱셉연산
/ 좌측값을 우측값으로 나눗셈 연산
% 좌측값을 우측값으로 나눈 나머지를 구하는 연산

비트 연산자

비트 연산자는 데이터를 비트 단위로 연산하며 정수 타입만 비트 연산을 할 수 있다.
비트 논리 연산자와 비트 이동 연산자로 구분된다.

비트 논리 연산자

구분 연산자 설명
AND & 두 비트 모두 1일 경우에만 1
OR | 두 비트 중 하나만 1이면 1
XOR ^ 두 비트 중 하나는 1이고 다른 하나가 0일 경우 1
NOT ~ 보수

비트 이동 연산자

연산자 설명
<< 왼쪽 값의 각 비트를 오른쪽 값만큼 왼쪽으로 이동하고 빈자리는 0으로 채운다.
>> 왼쪽 값의 각 비트를 오른쪽 값만큼 오른쪽으로 이동하고 빈자리는 최상위 부호 비트로 채운다.
>>> 왼쪽 값의 각 비트를 오른쪽 값만큼 오른쪽으로 이동하고 빈자리는 0으로 채운다.

관계 연산자

연산자 설명
== 두 값이 같은지 검사
!= 두 값이 다른지 검사
> 왼쪽값이 큰지를 검사
>= 왼쪽값이 크거나 같은지 검사
< 왼쪽값이 작은지 검사
<= 왼쪽값이 작거나 같은지 검사

논리 연산자

구분 연산자 설명
AND && 또는 & 양쪽 값 모두가 true일 경우에 true
OR || 또는 | 양쪽 값 중 하나만 true이면 true
XOR ^ 하나는 true고 다른 하나가 false경우에만 true
NOT ! 값의 논리값을 바꿈

instanceof

instanceof 연산자를 사용해 어떤 객체가 어떤 클래스의 인스턴스인지 확인할 수 있다.

boolean result = parent instanceof Child // parent의 값이 Child 클래스의 인스턴스인지 여부를 반환한다.

assignment(=) operator

대입연산자는 오른쪽 값을 왼쪽 변수에 저장한다.

연산자 설명
= 오른쪽 값을 왼쪽 변수에 저장
+= 오른쪽 값을 왼쪽 변수의 값과 더한후 다시 왼쪽 변수에 저장
-= 오른쪽 값을 왼쪽 변수의 값에서 뺀후 다시 왼쪽 변수에 저장
*= 오른쪽 값을 왼쪽 변수의 값과 곱한후 다시 왼쪽 변수에 저장
/= 오른쪽 값을 왼쪽 변수의 값과 나눈후 다시 왼쪽 변수에 저장
%= 오른쪽 값을 왼쪽 변수의 값과 나눈후에 나머지를 왼쪽변수에 저장
!= 오른쪽 값과 왼쪽 변수의 값을 | 연산 후 왼쪽 변수에 저장
^= 오른쪽 값과 왼쪽 변수의 값을 ^ 연산 후 왼쪽변수에 저장
<<= 오른쪽 값과 왼쪽 변수의 값을 « 연산 후 왼쪽 변수에 저장
>>= 오른쪽 값과 왼쪽 변수의 값을 » 연산 후 왼쪽 변수에 저장
>>>= 오른쪽 값과 왼쪽 변수의 값을 »> 연산 후 왼쪽 변수에 저장

화살표(->) 연산자

화살표 연산자(람다식)를 사용하면 불필요한 코드를 줄일 수 있고 코드의 가독성이 좋아진다.

기존방식

Runnable run = new Runnable() {
    public void run() { … }
}

람다식

Runnable run = () -> { …  };

3항 연산자

삼항 연산자는 세 개의 피연산자를 필요로한다.

변수 = 조건식 ? 값 : 값

? 앞의 조건식이 true라면 : 앞에 값이 변수에 들어가고 false라면 : 뒤에 값이 변수에 들어간다.

연산자 우선 순위

우선순위는 증감, 부호, 비트, 논리가 가장 높고 대입이 가장 낮다.

연산자 연산방향
증감(++, –), 부호(+, -), 비트(~), 논리(!) <—-
산술(*, /, %) —->
산술(+,-) —->
쉬프트(«, », »>) —->
비교(<, >, <=, >=, instanceof) —->
비교(==, !=) —->
논리(&) —->
논리(^) —->
논리(|) —->
논리(&&) —->
논리(||) —->
조건(?:) —->
대입(=, +=, -=, *=, /=, %=, &=, ^=, |=, «=, »=, »>=) —->

java 13. switch 연산자

  • 기존의 switch문이 변경된것이 아니라 switch라는 연산자가 추가된 것이다.
  • break는 더이상 사용할 수 없고 yield가 대신 사용된다.
  • 화살표 연산자를 사용할수있다.
int result = switch (mode)  {
    case "a", "b":
        yield 1;
    case "c":
        Yield 2;
    case "d", "e", "f":
        Yield 3;
    default:
        Yield -1;
}

참고

https://mkyong.com/java/java-13-switch-expressions/

Tags:

Categories:

Updated:

Comments