| 연산자 종류 | 연산자 | 피연산자 수 | 산출값 | 기능 |
| 산술 | + - * / % | 이항 | 숫자 | 사칙연산 및 나머지 계산 |
| 문자열 | + | 이항 | 문자열 | 두 문자열을 연결 |
| 대입 | = += -= *= /= %= | 이항 | 다양 | 우변의 값을 좌변의 변수에 대입 |
| 증감 | ++ -- | 단항 | 숫자 | 1만큼 증가/감소 |
| 비교 | == >= > < >= <= | 이항 | boolean | 값의 비교 |
| 논리 | ! & | && || | 단항 이항 |
boolean | 논리 부정, 논리곱, 논리합 |
| 조건 | (조건식) ? A : B | 삼항 | 다양 | 조건식에 따라 A 또는 B 중 하나를 선택 |
√ 연산의 방향과 우선순위
- 단항,이항,삼항 연산자 순으로 우선순위를 가짐
- 산술,비교,논리, 대입 연산자 순으로 우선순위를 가짐
- 복잡한 연산식에는 괄호 ()를 사용해서 우선순위를 정함
- 피연산자 중 하나라도 문자가 들어가있으면 무조건 문자 연산됨
실습 코드
public class P2 {
public static void main(String[] args) {
// + 문자열 연산
String a1 = "안녕하세요";
String a2 = " 반갑습니다.";
String a3 = a1+a2;
System.out.println(a3);
String a4 = a1+a2+3; // 문자+문자+숫자 -> 3 String으로 됨 변환함
//피연산자 중 하나라도 문자가 들어가있으면 무조건 문자 연산됨 숫자 3이 변환됨
System.out.println(a4);
String a5 = a1+a2+3+4;
System.out.println(a5);
String a6 = a1+a2+(3+7);
System.out.println(a6);
String a7 = a1+a2+3*4;
System.out.println(a7);
char b1 = 97;
int b2=b1+3;
//String b3 = b2 + 7+"";//공부
String b3= 3+b1+"안녕하세요";
System.out.println(b3);
}
}

← 결 과
📌 피연산자 타입과 결과 타입 정리
1️⃣ 동일한 타입끼리 연산
피연산자1피연산자2결과 타입예제
| int | int | int | 10 + 3 → 13 (int) |
| double | double | double | 5.5 + 2.2 → 7.7 (double) |
| char | char | int | 'a' + 'b' → 97 + 98 = 195 (int) |
2️⃣ 서로 다른 타입끼리 연산 (자동 형 변환, Promotion)
작은 타입 → 큰 타입으로 변환 후 연산
피연산자1피연산자2결과 타입예제
| byte | int | int | (byte)10 + 5 → 15 (int) |
| short | int | int | (short)3 + 7 → 10 (int) |
| char | int | int | 'A' + 3 → 65 + 3 = 68 (int) |
| int | double | double | 5 + 3.2 → 8.2 (double) |
3️⃣ 정수 & 실수 연산 (자동 형 변환)
- int + double → double
- float + double → double
✅ 예제
int a = 10;
double b = 2.5;
double result = a + b; // 10 + 2.5 = 12.5 (double)
4️⃣ 강제 형 변환 (Casting)
작은 타입으로 변환할 때 명시적 형 변환 필요
피연산자1피연산자2결과 타입형 변환 예제
| double | int | int | (int) (3.7 + 2) → 5 (int) |
| float | int | int | (int) (4.5f + 2) → 6 (int) |
| long | int | int | (int) (100L + 2) → 102 (int) |
✅ 예제
double d = 5.7;
int i = (int) d; // 5
📌 결론
- 서로 다른 타입끼리 연산하면 더 큰 타입으로 변환됨 (자동 형 변환)
- double이 포함된 연산은 결과가 double
- 정수끼리 연산은 int 이상으로 결과가 나옴 (byte, short 연산 결과도 int!)
- 작은 타입으로 변환할 땐 Casting 필요
'중앙정보기술인재개발원 > JAVA' 카테고리의 다른 글
| [JAVA] 배열 (1) | 2025.03.18 |
|---|---|
| [JAVA] Scanner (1) | 2025.03.17 |
| [JAVA] Garbage Colletion(가비지 컬렉션) (1) | 2025.03.12 |
| [JAVA] 형변환 | promotion, type casting (1) | 2025.03.11 |
| 2주차 [개발 환경 세팅하기] (1) | 2025.03.10 |