" 모든 연산자는 연산 결과를 반환 "
연산자 : 연산을 수행하는 기호
피연산자 : 연산자의 수행 대상
종류 | 연산자 | 설명 |
산술 연산자 | + - * / % << >> | 사칙 연산과 나머지 연산(%) |
비교 연산자 | > < >= <= == != | 크고 작음과 같고 다름을 비교 |
논리 연산자 | && || ! & | ^ ~ | AND와 OR로 조건을 연결 |
대입 | = | 우변의 값을 좌변에 저장 |
기타 | (type) ?: instanceof | 형변환, 삼항, instanceof 연산자 |
< 연산자의 우선 순위 >
산술 > 비교 > 논리 > 대입
단항(1) > 이항(2) > 삼항(3)
< 연산자의 결합 규칙 >
대입, 단항 연산자를 제외하면 모두 왼쪽 ➔ 오른쪽
증감 연산자
타입 | 설명 | 예시 |
전위형 | 값이 참조되기 전에 증가 | j = ++j ; |
후위형 | 값이 참조된 후에 증가 | j = j++ ; |
부호 연산자
- : 피연산자의 부호를 반대로 변경
+ : 아무런 일 X
int i = -10; // i에 -10 대입
i = - i; // i 부호 반대
System.out.Println(i) // 10
형변환 연산자
(타입) 피연산자
변수 또는 상수의 타입을 다른 타입으로 변환하는 것
double d = 85.4;
int score = (int) d; // 85 (더블타입 d를 정수타입으로 변경)
변환 | 수식 | 결과 |
int ➔ char | (char)65 | 'A' |
char ➔ int | (int)'A' | 65 |
float ➔ int | (int)1.6f | 1 |
int ➔ float | (float)10 | 10.0f |
* 유니코드 문자
'0' = 48 / 'A' = 65 / 'a' = 97
자동 형변환 연산자
float f = 1234; // (float) 생략 / int 타입의 값을 float 타입의 변수에 저장
float f = (float) 1234; // 자동 형변환 됨
int i = 3.14f; // 큰값을 작은 값에 넣으면 에러 / 자동 형변환 진행 X
int i = (int) 3.14f; // 수동 형변환 해야 함
Ex)
1. byte ➔ int (4byte)
byte b = 10; // 10은 int지만 -128~127의 리터럴 값이라 가능
int i = b; // 생략 가능
2. int (4byte) ➔ byte : 큰값 ➔ 작은값 = 값손실 발생
int i2 = 300;
byte b2 = (byte) i2; // 생략 불가능
사칙 연산자
10 (int) / 4 (int) ➔ 2 (int)
10 (int) / 4.0f (float) ➔ 10.0f (float) / 4.0f (float) ➔ 2.5f (float)
산술 연산자
연산 전에 피연산자의 타입을 일치시키는 것
1. 두 연산자의 타입을 같게 일치시킴 (큰 타입으로)
long + int ➔ long + long ➔ long
float + int ➔ float + float ➔ float
double + float ➔ double + double ➔ double
2. int보다 작은 타입이면 int로 변환 (byte, char, short)
byte + short ➔ int + int ➔ int
char + short ➔ int + int ➔ int
'JAVA > 자바의 정석' 카테고리의 다른 글
[자바의 정석 - 기초편] 4. (1) 조건문 ( if문 / switch문 ) (0) | 2023.11.24 |
---|---|
[자바의 정석 - 기초편] 3. (2) 연산자 (반올림 / 문자열 비교 / 논리 / 조건 / 대입) (0) | 2023.11.24 |
[자바의 정석 - 기초편] 2. (4) 타입간 변환 방법 (문자 / 숫자 / 문자열) (0) | 2023.11.24 |
[자바의 정석 - 기초편] 2. (3) 화면 입력 Scanner (0) | 2023.11.24 |
[자바의 정석 - 기초편] 2. (2) 형식화된 출력 printf() (0) | 2023.11.24 |