Java

자바 프로그래밍 (Java) - 11 : 연산자 종류 및 규칙 (1)

n.han 2016. 7. 12. 10:33

- 연산 규칙 및 종류

 

  1) 이항 연산 시 큰 데이터 타입으로 형 변환하여 연산이 수행된다.

 

예를 들어 int double의 연산은 먼저 int double로 암시적 형 변환 후에 계산된다.

 

, float long 타입의 연산은 먼저 long float로 암시적 형 변환 후에 계산된다.

 

  2) int promotion

 

Java Virtual Machine 32bit 체제이기 때문에, byte, short int로 형 변환 후에 계산을 수행한다.

 

이는 int 4byte로 계산 속도가 가장 빠르기 때문이다.

 

  3) 부호 연산자 ( +=, -= =+, =-의 차이)

 

+= -=은 양쪽의 피연산자를 먼저 더하고 (혹은 빼고), 그 값을 좌측 피연산자에 대입하는 것이다.

 

하지만 =+, =-은 우측의 피연산자를 + 부호로, - 부호로 변환하고 그 값을 좌측 피연산자에 대입하는 것이다.

 

  4) 문자열 연결 연산자 +

 

두 개의 문자열을 연결해서 새로운 문자열을 만드는 연산자이다. 비문자열데이터는 문자열로 변환 후에 연결된다.

 

특히, 객체와 문자열을 + 연산 수행 시, 객체의 toString() 함수가 호출되어 문자열 연길이 수행된다.

 

  5) 단순 대입 연산자의 순서

 

= 연산자는 우측부터 처리된다. 따라서 num2 = num 1 = 10; num2 = (num 1 = 10);과 같다.

 

  6) ++피연산자, 피연산자++와의 차이

 

++피연산자는 먼저 해당 피연산자를 증가 시킨 후에 나머지 연산이 수행되고,

 

피연산자++은 해당 명령문의 마지막에 수행된다고 생각하면 된다.

 

 7) 논리 연산자와 조건 AND/OR 연산자

 

논리 연산자의 & |는 비트 연산자의 AND OR 연산자와 동일하기 때문에, 이는 피연산자로 구분해야 한다.

 

논리 연산자는 피연산자가 Boolean이다.

 

& &&는 다른데, &은 왼쪽의 피연산자의 true, false와 관계 없이 모두 수행된다.

 

| ||도 같은 차이가 있는데, ||는 왼쪽의 피연산자가 true면 우측의 피연산자를 수행하지 않는다.

 

연산자

의미

&

AND 연산

|

OR 연산

^

XOR 연산

!

NOT 연산

&&

AND 연산

||

OR 연산