Java.연산자

marie_lee·2022년 12월 22일
0

today-Java

목록 보기
2/2
post-thumbnail

[연산자 종류]

  • 산술 연산자 : + - * / % << >>
  • 비교 연산자 : > < >= <= == !=
  • 논리 연산자 : && || ~ & | ^ ~
  • 대입 연산자 : =
  • 기 타 : (type) ?: instanceof

[연산자의 우선순위와 결합규칙]

** AND를 의미하는 '&'과 '&&'가 OR을 의미하는 '|'와 '||'보다 우선순위가 높다.

  • 연산자의 결합규칙: 우선순위가 같다고 해서 아무거나 먼저 처리하는 것이 아니라 나름의 규칙이 있다.
    1. 산술 > 비교 > 논리 > 대입. 대입은 제일 마지막에 수행된다.
    2. 단항 > 이항 > 삼학. 단항 연산자의 순위가 이항 연산자의 순위보다 높다.
    3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.

[산술변환]

이항 연산자는 두 피연산자의 타입이 일치해야 연산이 가능하다.
연산 전에 피연산자 타입의 일치를 위해 자동 형변환 되는 것을 '산술변환', '일반 산술 변환'이라 한다.

{산술변환 규칙}

  1. 두 피연산자의 타입을 같게 일치시킨다. (보다 큰 타입으로 일치)
  2. 피연산자의 타입이 int보다 작은 타입이면 int로 변환한다.

[산술 연산과 자동 형변환]

class Operator{
	public static void main(String args[]) {
    	int a = 1_000_000;
        int b = 2_000_000;
        
        long c = a * b;
        
        System.out.println(c);
    }
}
  • int타입과 int타입 연산에서 long타입으로 자동 형변환 되어 2,000,000,000,000이 출력될 것 같지만, 실제로는 엉뚱한 값이 나온다.

    int타입과 int타입의 연산 결과는 int타입이므로. long타입으로 자동 형변환 되어도 엉뚱한 값이 변하지는 않는다.

profile
시작은 미약하나 끝은 창대하리라

0개의 댓글