- 연산 규칙 및 종류
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 연산 |
'Java' 카테고리의 다른 글
자바 프로그래밍 (Java) - 13 : 연산자 종류 및 규칙 (3) - 예제 마무리 (0) | 2016.07.12 |
---|---|
자바 프로그래밍 (Java) - 12 : 연산자 종류 및 규칙 (2) (0) | 2016.07.12 |
자바 프로그래밍 (Java) - 10 : 문자 리터럴 상수 (ecape sequence) (0) | 2016.07.12 |
자바 프로그래밍 (Java) - 9 : 리터럴 상수 (Literal) (0) | 2016.07.12 |
자바 프로그래밍 (Java) - 8 : 자바 데이터 타입 분류 체계, Promotion (0) | 2016.07.12 |