목표
자바가 제공하는 다양한 연산자를 학습하세요.
학습할 것
- 산술 연산자
- 비트 연산자
- 관계 연산자
- 논리 연산자
- instanceof
- assignment(=) operator
- 화살표(->) 연산자
- 3항 연산자
- 연산자 우선 순위
산술 연산자
산술 연산자는 사칙 연산과 나누기 연산을 포함한 연산자들 입니다.
- 사칙 연산:
+
-
*
/
- 나누기 연산:
%
비트 연산자
비트 연산자는 비트 단위로 값을 계산하는 연산자 입니다.
종류로는 비트 이동 연산자, 비트 논리 연산자 등이 있습니다.
- 비트 이동 연산자:
>>
<<
>>>
- 비트 논리 연산자:
&
|
^
~
관계(비교) 연산자
관계 연산자는 데이터의 크고 다름과 같음을 비교하는 연산자입니다.
종류로는 >
<
<=
=>
==
!=
등이 있습니다.
논리 연산자
논리 연산자는 두 개의 논리 값을 연산하여 참 또는 거짓의 결과를 얻는 연산자 입니다.
종류로는 &&
||
!
등이 있습니다.
instanceof
이름 instanceof 타입
instanceof 키워드는 이름이 해당 타입에 대한 인스턴스인지 확인할 때 쓰는 키워드 입니다. 보통 타입 캐스팅을 하기 전, 타입 캐스팅이 가능한지 체크할 때 사용하게 됩니다.
assignment(=) operator
대입 연산자는 값을 저장공간, 즉 변수에 저장하는 연산자입니다. 오른쪽에 있는 값을 왼쪽으로 저장합니다.
만약 이런 코드가 있다고 가정해보겠습니다.
age = 5;
왼쪽에 있는 값을 lvalue, 오른쪽에 있는 값을 rvalue라고 표현합니다.
rvalue의 경우 수식을 포함해 변수 등도 해당될 수 있지만 lvalue의 경우 변수 등의 오로지 값을 저장할 수 있는 저장공간만 해당됩니다.
화살표(->) 연산자
화살표 연산자에 대해 알기 위해선 먼저 람다식에 대해 간략하게 알아야 합니다.
람다 표현식(lambda expression)은 메서드를 하나의 식으로 표현한 것으로,
객체나 클래스를 생성하지 않고 메서드를 사용할 수 있다는 특징이 있습니다.
(매개변수목록) ->
3항 연산자
3항 연산자는 ?: 문법을 통해 사용합니다. 수식 ? 값1 : 값2
형태를 가지고 있으며 수식이 참일 경우 값1, 거짓일 경우 값2가 리턴됩니다.
result = x > y ? x : y // x가 y보다 클 경우 x 리턴, 아니면 y 리턴
연산자 우선 순위
연산자는 단항
, 산술
, 비교
, 논리
, 삼항
, 대입
의 우선순위를 가지고 있습니다.
예외 사항은 다음과 같습니다.
쉬프트 연산자(<<)는 덧셈보다 우선순위 낮음x << 2 + 1
비트 연산자는 비교 연산자보다 우선순위 낮음data & 0xFF == 0
논리 연산자중 '&'와 '&&'가 '|', '||'보다 우선순위 높음x < -1 || x > 3 && x < 5
링크
- 자바의 정석 3rd Edition
- https://velog.io/@maigumi/%EC%9E%90%EB%B0%94-%EC%97%B0%EC%82%B0%EC%9E%90-2
- http://www.tcpschool.com/java/java_lambda_concept
https://github.com/whiteship/live-study/issues/3
* 오타와 오류 지적은 언제나 환영입니다.