Java

[Java] 연산자

다콩잉 2022. 7. 8. 22:07

자바의 연산자는 연산 결과의 특징에 따라 3가지로 나눌 수 있다.

1. 연산 결과가 특정 값이 나오는 산술, 증감, 비트, 시프트 연산자

2. 연산 결과가 참 또는 거짓 중 하나의 값으로만 나타나는 비교, 논리, 연산자

3. 값을 반환하는 것이 아닌 값을 대입하는 의미를 지니고 있는 대입 연산자와 삼항 연산자

 

자료형 연산기호 기능 결과
산술 연산자
증감 연산자
비트 연산자
시프트 연산자
+, -, *, /, %
++, --
&, |, ~, ^

>>>, >>, <<
사칙연산 및 나머지 연산
값이 1씩 증가 및 감소
비트 AND, OR, NOT, XOR

비트 단위로 이동
비교 연산자
논리 연산자
<, >, <=, >=, ==, !=
&&, ||, !, ^
값의 크기 비교
논리 AND, OR, NOT, XOR
참 또는 거짓
대입 연산자
삼항 연산자
=, +=, -=, *=, /=
&=, |=, >>=, <<=, >>>=
(참 또는 거짓) ? x : y
산술 연산 결과의 대입
('연산자' + '='의 축약 표현)
참일 때 x, 거짓일 때 y
실행

-> 보통 대입 연산자가 있어야지 변수의 값이 바뀜.                              예외) ++a, a++, --a, a--

 

 

 

증감 연산자

 

* 전위형
int a1 = 3;
int b1 = ++a;

// a1: 4, b1: 4

* 후위형
int a2 = 3;
int b2 = a2++;

// a2: 4, b2: 3

 

 

 

시프트 연산자

 

연산자 부호 특성
<< 양수
음수
1 bit 시프트당 x2, 부호유지 3 << 1 = 6
-3 << 1 = -6
>> 양수
음수
1 bit 시프트당 / 2, 부호유지, 소수 버림
1 bit 시프트당 /2, 부호유지, 소수 올림
5 >> 2 = 1
-5 >> 2 = -2

 

 

 

논리 시프트 ( >>>)

 

   · 부호 비트를 포함해서 전체 비트를 오른쪽으로 이동시키는 연산으로 빈칸은 모두 0으로 채움

   · 부호 비트까지 이동시키므로 부호 비트가 1인 음수일 때 논리 시프트 이후에는 값이 양수로 변함

 

 

 

등가 비교 비교대상

 

   ·  등가비교( ==,  != )의 비교대상은 스택 메모리의 값

 

 

 

삼항 연산자

 

   · ( 참 또는 거짓 ) ? 참일 때 연산결과 : 거짓일 때 연산결과

int a = (true) ? 1 : 2;			// a: 1
int b = (a / 2 == 0) ? 10 : 20;		// b: 20

 

 

 

stack, heap

 

                                                                 stack                          |                     heap

                                                       reference variable                |                    객체

                         * reference type(참조 자료형): Array, Class, Interface -> new로 객체 생성(static만 new x)

 

728x90