ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    'Java' 카테고리의 다른 글

    [Java] Set 성적관리 프로그램  (0) 2022.09.19
    [Java] ArrayList 성적관리 프로그램  (0) 2022.09.19
    [Java] 참조 자료형  (0) 2022.07.09
    [Java] 제어문  (0) 2022.07.08
    [Java] 자료형  (0) 2022.07.08
Designed by Tistory.