JUST GO

[공통] 연산자 본문

Java/학습내용

[공통] 연산자

root_go 2022. 10. 12. 10:05

연산자

  • Java의 연산자는 아래 항목의 순서대로 우선순위를 가진다. (1번이 가장 높은 우선순위, 뒤로 갈수록 낮은 우선순위)

1. 순위

  • 1. 첨자 연산자 : (좌 → 우) 배열의 원소에 접근하기 위한 연산자.
  • int[] numbers = {1, 2, 3} System.out.println(numbers[0]);
  • 2. 멤버 연산자 : . (좌 → 우) 어떠한 객체나 타입의 멤버에 접근하기 위해 사용한다.

2. 순위

  • 후위 증가 연산자 : ++ (좌 → 우) 해당 연산자가 포함된 구문이 실행된 이 후에 어떠한 정수형 변수에 1을 더하기 위해 사용한다. 해당 변수 뒤에 연산자를 기입힌다. 가령, x++ .
  • 후위 감소 연산자 : -- (좌 → 우) 해당 연산자가 포함된 구문이 실행된 이 후에 어떠한 정수형 변수에 1을 빼기 위해 사용한다. 해당 변수 뒤에 연산자를 기입한다. 가령, x-- .

3. 순위

  • 논리 NOT 연산자(부정): ! (우→좌) 후행하는 논리를 부정한다. true 를 false 로, false 를 true 로 역전하며, 후행 값은 반드시 논리형 이어야 한다.
  • 양의 부호 : + (우→좌) 후행하는 숫자를 양수로 만든다. 생략해도 관계 없으며, 더하기 연산(합)이 아님에 유의한다.
  • 음의 부호 : - (우→좌) 후행하는 숫자를 음수로 만든다. 빼기 연산(차)이 아님에 유의한다. 가령, -5는 음수인 5이다.
  • 전위 증가 연산자 : ++ (우→좌) 해당 연산자가 포함된 구문이 실행되기 전에 어떠한 정수형 변수에 1을 더하기 위해 사용한다. 해당 변수 앞에 연산자를 기입한다. 가령, ++x .
  • 전위 감소 연산자 : -- (우→좌) 해당 연산자가 포함된 구문이 실행되기 전에 어떠한 정수형 변수에서 1을 빼기 위해 사용한다. 해당 변수 앞에 연산자를 기입한다. 가령, --x .
  • 형 변환(타입 캐스트) 연산자 : (타입 이름) (우→좌) 후행하는 값의 타입을 강제로 변환한다. 가령, (object) "Hello" 의 연산 결과의 혀은 문자열이 아닌 Object 타입이다.

4. 순위

  • 곱셈 연산자 : * (좌 → 우) 좌항과 우항을 곱한다.
  • 나눗셈 연산자 : / (좌 → 우) 좌항을 우항으로 나눈 몫을 구한다.
  • 나머지 연산자 : % (좌 → 우) 좌항을 우항으로 나눈 나머지를 구한다.

5. 순위

  • 덧셈 연산자 : + (좌 → 우) 좌항과 우항을 더한다. 덧셈 연산자는 문자열 합치기(String Concatenation)를 수행할 때에도 사용하는데, 문자열과 문자열이지 않은 것을 더하면 문자열이지 않은 것을 문자열로 변경하여 합쳐진 문자열 하나로 반환하게 된다. 가령, 5 + "살입니다."의 연산 결과는 "5살입니다."가 된다.
  • 뺄셈 연산자 : - (좌 → 우) 좌항에서 우항을 뺀다.

6. 순위

: 비트 연산

7. 순위

  • 미만 관계 연산자 : < (좌 → 우) 좌항 값이 우항 값 미만인가에 대한 여부를 구한다.
  • 이하 관계 연산자 : <= (좌 → 우) 좌항 값이 우항 값 이하인가에 대한 여부를 구한다.
  • 초과 관계 연산자 : > (좌 → 우) 좌항 값이 우항 값 초과인가에 대한 여부를 구한다.
  • 이상 관계 연산자 : >= (좌 → 우) 좌항 값이 우항 값 이하인가에 대한 여부를 구한다.
  • instanceOf 연산자 : instanceOf (좌 → 우) 좌항 객체가 우항 타입으로 형 변환 될 수 있는가의 여부를 구한다. 가령, "Hello" instanceOf Object 는 true 가 된다. 주로, 강제 형변환을 실시하기 전 ClassCastException 예외가 발생하는 것을 막기 위해 사용한다.

8. 순위

  • 동등 관계 연산자 : '==' (좌 → 우) 좌항과 우항의 스택 영역의 값이 같은지의 여부를 구한다.
  • 부등 관계 연산자 : != (좌 → 우) 좌항과 우항의 스택 영역의 값이 다른지의 여부를 구한다.

9. 순위

  • 비트 AND 연산자 

10. 순위

  • 비트 XOR 연산자

11. 순위

  • 비트 OR 연산자

12. 순위

  • 논리 AND 연산자 : && (좌 → 우) 좌항의 논리 값과 우항의 논리 값이 모두 참(true) 인가의 여부를 구한다.

13. 순위

  • 논리 OR 연산자 : || (좌 → 우) 좌항의 논리 값과 우항의 논리 값 중 하나 이상이  참(true)인가의 여부를 구한다.

14. 순위

  • 삼항 연산자 : ... ? .... : ... (우→좌) 어떠한 논리 값의 여부에 따라 서로 다른 값으로 대치한다. 가령, 10 % 2 == 0 ? "참" : "거짓" 의 결과는 "참" 이다.

15. 순위

  • 대입 연산자 : = (우→좌) 우항의 값을 좌항의 변수나 상수에 대입한다.
  • 곱셈 복합 대입 연산자 : *= (우→좌) 좌항의 값과 우항의 값을 곱한 값을 좌항의 변수에 대입한다.
  • 나눗셈 복합 대입 연산자 : /= (우→좌) 좌항의 값에 우항의 값으로 나눈 몫을 좌항의 변수에 대입한다.
  • 나머지 복합 대입 연산자 : %= (우→좌) 좌항의 값을 우항의 값으로 나눈 나머지를 좌항의 변수에 대입한다.
  • 덧셈 복합 대입 연산자 : += (우→좌) 좌항의 값에 우항의 값을 더한 값을 좌항의 변수에 대입한다.
  • 뺄셈 복합 대입 연산자 : -= (우→좌) 좌항의 값에서 우항의 값을 뺀 값을 좌항의 변수에 대입한다.
  • 비트 복합 대입 연산자 '&=', '|=', '^=', '<<=', '>>=', '>>>='

'Java > 학습내용' 카테고리의 다른 글

[공통] 객체  (0) 2022.10.12
[공통] 일반 문법  (0) 2022.10.12
[공통] 타입  (0) 2022.10.11
[공통] 변수와 상수  (0) 2022.10.11
[공통] 메서드  (0) 2022.10.11