산술 연산자 (Arithmetic Operator)
연산식 | 설명 | ||
피연산자 | + | 피연산자 | 덧셈 연산 |
피연산자 | - | 피연산자 | 뺄셈 연산 |
피연산자 | * | 피연산자 | 곱셈 연산 |
피연산자 | / | 피연산자 | 좌측 피연산자를 우측 피연산자로 나눗셈 연산 |
피연산자 | % | 피연산자 | 좌측 피연산자를 우측 피연산자로 나눈 나머지를 구하는 연산 |
산술 연산자의 특징은 피연산자들의 타입이 동일하지 않을 경우 다음과 같은 규칙을 사용해 타입을 일치시켜 연산한다.
1. 피연산자들이 모두 정수 타입이고, int type(4byte)보다 크기가 작은 타입일 경우 모두 int타입으로 변환 후, 연산을 수행한다. 따라서 연산의 산출 타입은 int이다.
byte byteValue1 = 1;
byte byteValue2 = 2;
int intValue1 = 1;
int intValue2 = 2;
int intResult;
Result = byteValue1 + byteValue2; //promotion
Result = intValue1 + intValue2; //
2. 피연산자들이 모두 정수 타입이고, long 타입이 있을 경우 모두 long 타입으로 변환 후, 연산을 수행한다.
따라서 연산의 산출 타입은 long이다.
Long longResult;
int intValue1 = 5;
Long longValue1 = 5L;
Long longValue2 = 10L;
longResult = intValue1 + longValue1; //Casting
longResult = longValue1 + longValue2;
3. 피연산자 중에 실수 타입(float, double)이 있을 경우, 크기가 큰 실수 타입으로 변환 후, 연산을 수행한다.
double doubleResult;
int intValue1 = 1;
double doubleValue1 = 0.1;
double doubleValue2 = 0.0001;
doubleResult = intValue1 + doubleValue1; // Casting
doubleResult = doubleValue1 + doubleValue2;
부호 연산자
양수 및 음수를 표시하는 +, -를 의미한다.
부호 연산자의 산출 타입은 int가 되기 때문에 초기화 시 에러가 나지 않게 주의
short s = 50;
short minusShort = -s; // compile error
->
short s = 50;
int result = -s;
증감 연산자
변수의 값을 1 증가 시키거나(++) 1 감소(--)시키는 연산자
int x = 1;
int y = 1;
int result1 = ++x + 10; // 12;
int result2 = y++ + 10; // 11;
==============================
++i와 i = i + 1은 바이트 코드 까보면 동일한 바이트 코드가 생성된다.
개인적으로는 눈에 잘 들어오는 i = i + 1을 선호한다.
iconst+0
istore+1 [i]
iinc 1 1 [i]
문자열 연결 연산자
문자열 연결 연산자인 +는 문자열을 서로 결합하는 연산자이다.
결합 위치에 따라 다른 결과가 출력 될 수 있기 때문에 사용시 주의하자
String str1 = "test" + 100 + "점"; // "test100점";
String str2 = 5 + 10 + "점"; // 15점;
String str3 = "test" + 5 + 10 + "점"; //"test510점";
'Language > JAVA' 카테고리의 다른 글
3주차 과제 : 관계 연산자 (0) | 2021.02.13 |
---|---|
3주차 과제 : 비트 연산자 (0) | 2021.02.13 |
2주차 과제 : 타입 추론, var (0) | 2021.02.13 |
2주차 과제 : 타입 변환, 캐스팅 그리고 타입 프로모션 (0) | 2021.02.13 |
2주차 과제 : 1차 및 2차 배열 선언하기 (0) | 2021.02.13 |