자바 연산자: 프로그램에서 데이터를 처리하기 위한 기호
◆ 산술 연산자 (Arithmetic Operators)
■ 기본 산술 연산자:
○ ' + ' 덧셈
○ ' - ' 뺄셈
○ ' * ' 곱셈
○ ' / ' 나누기 (몫)
○ ' % ' 나머지_mod (나눴을 때 몫말고 나머지)
■ 증감 연산자:
○ ' ++ ' 증가 (++num1 --> 왼쪽에 있을 땐 +1 / num1++ --> 오른쪽에 있을 땐 +0)
○ ' -- ' 감소 (--num1 --> 왼쪽에 있을 땐 -1 / num1-- --> 오른쪽에 있을 땐 -0)
전위(prefix) 및 후위(postfix) 사용 가능:
int a = 5;
System.out.println(++a); // 6 (증가 후 사용)
System.out.println(a++); // 6 (증가 후 사용)
◆ 할당 연산자 (Assignment Operators)
○ = (기본 할당)
○ +=, -=, *=, /=, %= (오른쪽에 있는 걸 왼쪽에 연산후 왼쪽에 넣는다)
ex)
int a = 5;
a += 3; // a = a + 3 과 동일
◆ 비교 연산자 (Comparison Operators)
○ ' == ' 같음
○ ' != ' 다름
○ ' > ' 크다
○ ' < ' 작다
○ ' >= ' 크거나 같다
○ ' <= ' 작거나 같다
※ 주의: 객체 비교 시 equals( ) 메소드 사용 권장
◆ 논리 연산자 (Logical Operators)
○ ' && ' AND 그리고
○ ' || ' OR 또는
○ ' ! ' NOT 둘다 아님
단축 평가 (short-circuit evaluation) 지원:
if (obj ! = null && obj. method ( ) == true ) {
// obj가 null이 아닐 때만 method( ) 호출
}
◆ 비트 연산자 (Bitwise Operators)
○ ' & ' 비트 AND
○ ' | ' 비트 OR
○ ' ^ ' 비트 XOR
○ ' ~ ' 비트 NOT
○ ' << ' 왼쪽 시프트
○ ' >> ' 부호 있는 오른쪽 시프트
○ ' >>> ' 부호 있는 왼쪽 시프트
ex)
int a = 5; // 0101 in binary
int b = 3; // 0011 in binary
System.out.println(a & b); // 0011 in binary (1 in decimal)
◆ 삼항 연산자 (Ternary Operators)
○ 조건 ? 표현식1 : 표현식2
ex)
int result = (a > b) ? a : b; // a와 b 중 큰 값 선택
◆ instanceof 연산자
○ 객체가 특정 클래스의 인스턴스인지 확인:
if (obj instanceof String) {
String str = (String) obj ;
}
◆ 연산자 우선순위
- 후위 증감 (expr++, expr--)
- 전위 증감 (++expr, --expr) 및 단항 (+, -, ~, !)
- 곱셈, 나눗셈, 나머지 (*, /, %)
- 덧셈, 뺄셈 (+, -)
- 시프트 (<<, >>, >>>)
- 관계 (<, >, <=, >=, instanceof)
- 동등 (==, !=)
- 비트 AND (&)
- 비트 XOR (^)
- 비트 OR ( | )
- 논리 AND (&&)
- 논리 OR ( ||)
- 삼항 (?:)
- 할당 (=, +=, -=, /=, %=, ^=, |=, <<=, >>=, >>>=)
◆ 문자열 연결 연산자
○ ' + ' 연산자를 사용하여 문자열 연결:
String str = "Hello" + " " + "world"; // "Hello world"
◆ 연산자 오버로딩
○ 자바는 연산자 오버로딩을 지원하지 않음 (단, String 클래스의 + 연산자는 예외)
◆ 비트 연산자의 특수 용도
○ 플래그 설정 및 해제:
int flags = 0;
flags | = 0x1; // 첫 번째 비트 설정
flags & = ~0x1; // 첫 번째 비트 해제
◆ null 안전 연산자 (Java 8+)
○ Optional 클래스와 함께 사용
Optional<String> name = Optional.ofNullable(getName( ));
String result = name.orElse("Unknown");
◆ 메소드 참조 연산자 (Java 8+)
○ :: 연산자를 사용하여 메소드 참조:
List<String> name = Arrays.asList("Alice", "Bob", "Charlie");
name.forEach(System.out :: println);
◆ 람다 표현식 연산자 (Java 8+)
○ - > 연산자를 사용하여 람다 표현식 정의:
Runnable r = () -> System.out.println("Hello, world! );
'JAVA' 카테고리의 다른 글
[Java] 수업 정리 _ 2 (24.11.06) (0) | 2024.11.06 |
---|---|
[Java] 수업 정리 _ 1 (24.11.06) (1) | 2024.11.06 |
[Java] 자바 상수 정리 (1) | 2024.11.06 |
[Java] 자바 변수 정리 (0) | 2024.11.06 |
[Java] 자바 개념 (0) | 2024.11.06 |