++
) : 피연산자 값 1 증가--
) : 피연산자 값 1 감소int k = 0, j = 3;
// 전위형
k = ++j; // k = 4
j; // j = 4
k = 0, j = 3; // 초기화
// 후위형
k = j++; // k = 3
j; // j = 4
-
: 피연산자의 부호 반대로 변경+
: 아무 변화 없음(실제 사용 X)형변환 : 변수 또는 상수 타입을 다른 타입으로 변환하는 것
float f = 1234; // (OK) int 타입의 값을 float 타입 변수에 저장
int i = 3.14f; // (Error) float 타입 값이 더 크기 때문에 값 손실이 생겨서 error
int i = (int)3.14f; // (OK) 수동으로 형변환 시켜야 한다.
덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/)
int a = 10, b = 4;
System.out.println(a / 4); // 2 출력. 소수점 이하 버림
System.out.println(a / (float)b); // 2.5 출력
연산 전에 피연산자의 타입을 일치시키는 것
- 두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
- 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.
char ch = '2';
// 문자 '2' 는 숫자로 50, '0' 은 48
// 따라서 int 타입으로 자동으로 변하기 때문에 50 - 48 = 2
System.out.println(ch - '0');
int a = 1_000_000; // 1백만
int b = 2_000_000; // 2백만
// long l = a * b; // -1454759936. 계산할 때 이미 오버플로우 발생하므로 형변환 필요
long l = (long)a * b;
// long * int -> long * long => 1_000_000L * 2_000_000 -> 1_000_000L * 2_000_000L
System.out.println("l = " + l);
round()
: 실수를 소수점 첫째 자리에서 반올림한 정수를 반환ceil()
: 올림값을 double 형으로 반환floor()
: 내림값을 double 형으로 반환abs()
: 절대값. int, double 기본형 모두 사용 가능
// 소수점 3째 자리에서 반올림한 값 구하기
double pi = 3.141592;
double shortPi = Math.round(pi * 1000) / 1000.0;
==
대신 equals()
사용equals
: 두 피연산자의 값 자체 비교==
: 두 피연산자의 주소값 비교&&
: AND. 논리식이 모두 true 이면 true 반환||
: OR. 논리식이 하나라도 true 이면 true 반환!
: NOT. 논리식 결과가 true 이면 false 반환&
: (비트 AND 연산) 대응되는 비트가 모두 1이면 1 반환|
: (비트 OR 연산) 대응되는 비트가 하나라도 1이면 1 반환^
: (비트 XOR 연산) 대응되는 비트가 서로 다르면 1 반환~
: (비트 NOT 연산, 1의 보수) 비트를 1이면 0으로, 0이면 1로 반전<<
: (left shift 연산) 명시된 수만큼 비트 전부 왼쪽 이동>>
: (right shifg 연산) 부호 유지하면서 지정한 수만큼 비트 전부 오르쪽 이동>>>
: 지정한 수만큼 비트 전부 오른쪽 이동, 새로운 비트 전부 0조건식 ? 반환값1 : 반환값2
=
: 왼쪽의 피연산자에 오른쪽 피연산자를 대입[참고] <Java의 정석 - 기초편>