1. 연산자
: 어떠한 기능을 수행하는 기호
- 피연산자
: 연산자의 작업 대상
- 연산자 우선순위
① 산술 > 비교 > 논리 > 대입
② &&, &(and) > ||, |(or)
③ 덧셈연산자 > shift 연산자
- 산술 변환
: 피연산자의 자동 형변환
① 두 피연산자의 타입을 같게 일치시킴(둘 중 더 큰 타입으로)
② 피연산자의 타입이 int보다 작은 타입이면 int로 변환
2. 단항 연산자
- 증감연산자(++ --)
j = ++i; // 선 증감 후 연산 j = i++; // 선 연산 후 증감 |
int i = 5;
int j = 0;
j = i++;
System.out.printf("j=i++; 실행 후, i=%d, j =%d%n", i, j); // j=i++; 실행 후, i=6, j =5
i = 5;
j = ++i;
System.out.printf("j=++i; 실행 후, i=%d, j =%d%n", i, j); // j=++i; 실행 후, i=6, j =6
- 논리 부정연산자(!)
: 피연산자가 boolean 일 때만. true → false / false → true
- 비트 전환연산자 (~)
: 정수를 2진수로 표현했을때, 1 → 0 / 0→ 1
3. 이항 연산자
- 산술 연산자
byte a = 10;
byte b = 30;
byte c = (byte)(a*b);
System.out.println(c);
※ byte 끼리 연산 후 결과를 byte로 받으려면 형변환 필요
소수점 첫째자리에서 반올림
Math.round() : 매개변수를 소수점 첫째자리에서 반올림하고 결과값을 정수로 돌려줌
public class OperatorEx {
public static void main(String[] args) {
double pi3 = 3.141592;
double shortpi3 = Math.round(pi3 * 1000) / 1000.0;
System.out.println(shortpi3); // 3.142
}
}
- 비교 연산자
문자열 비교
== : 내용이 같아도 객체가 다르면 false 반환
equals() : 객체가 달라도 내용이 같으면 true 반환
equalsIgnoreCase() : 대소문자 구별 x
public class OperatorEx {
public static void main(String[] args) {
String str1 = "abc";
String str2 = new String("abc");
System.out.printf("\"abc\"== \"abc\" ? %b%n", "abc"=="abc");
System.out.printf("str1== \"abc\" ? %b%n", str1=="abc");
System.out.printf("str2== \"abc\" ? %b%n", str2=="abc");
System.out.printf("str1.equals(\"abc\") ? %b%n", str1.equals("abc"));
System.out.printf("str2.equals(\"abc\") ? %b%n", str2.equals("abc"));
System.out.printf("str2.equals(\"ABC\") ? %b%n", str2.equals("ABC"));
System.out.printf("str2.equalsIgnoreCase(\"abc\") ? %b%n", str2.equalsIgnoreCase("ABC"));
}
}
- shift 연산자(<<, >>, >>>)
<< : 지정된 수만큼 비트를 좌측 이동(x2)
>> : 부호를 유지하면서 지정된 수만큼 우측 이동(/2)
>>> : 지정된 수만큼 비트를 우측 이동 & 새로운 비트는 전부 0(무조건 양수)
i << n == i * 2^n
i >> n == i / 2^n
- 비트연산자(& | ^)
OR 연산자(|) : 피연산자 중 어느 한쪽이 1이면 1
AND 연산자(&) : 피연산자 양 쪽 모두 1이면 1
XOR 연산자(^) : 피연산자 서로 다르면 1
- 논리연산자(& | && ||) - boolean
: &&나 ||처럼 기호가 2개 사용되는 경우 앞의 식이 거짓이면 뒤에 있는 식은 실행 x
4. 삼항 연산자(? :)
: 조건식이 true이면 식1 결과 반환 / false이면 식2 결과 반환
(조건식) ? 식1 : 식2
'Back-end > JAVA' 카테고리의 다른 글
[JAVA] 객체지향 프로그래밍(1) - 클래스와 객체, 변수와 메서드, 오버로딩, 생성자, 초기화 (0) | 2023.09.09 |
---|---|
[JAVA] 조건문, 반복문 (0) | 2023.02.28 |
[JAVA] 변수, 변수의 타입, 입출력, 형변환 (0) | 2023.02.14 |
[JAVA] 이클립스(eclipse) 알아두면 좋은 단축키 모음 (0) | 2023.02.10 |
[JAVA] JAVA, JVM, 개발 환경(jdk, 이클립스), 주석 (0) | 2023.02.10 |