'연산을 수행하는 기호'이다.
연산자가 연산을 수행하려면 반드시 연산의 대상이 있어야 하는데, 그것을 '피연산자(operand)'라고 한다.
종류 | 연산자 | 설명 |
---|---|---|
산술 | + - * / % << >> | 사칙 연산과 나머지 연산(%) |
비교 | < > >= <= == != | 크고 작음과 같고 다름을 비교 |
논리 | && ㅣㅣ ! & ㅣ ^ ~ | '그리고(AND)' 와 '또는(OR)' 으로 조건을 연결 |
대입 | = | 우변의 값을 좌변에 저장 |
기타 | (type) ?: instanceof | 형변환 연산자, 삼항 연산자, instanceof연산자 |
** 연산자의 우선순위 : 산술 > 비교 > 논리 > 대입 (대입은 가장 마지막에 수행됨)
증가 연산자(++) : 피연산자의 값을 1 증가 시킨다.
감소 연산자(--) : 피연산자의 값을 1 감소 시킨다.
타입 | 설명 | 사용예 |
---|---|---|
전위형 | 값이 참조되기 전에 증가시킴 | j = ++i; |
후위형 | 값이 참조된 후에 증가시킴 | j = i++; |
** 후위형이 많이 쓰인다. i += 1 의 형태로도 쓸 수 있다.
서로 다른 타입 간의 연산을 수행해야 할 때, 연산을 수행하기 전에 타입을 일치시키기 위해 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 '형변환'이라고 한다.
** 형변환 방법 아주 쉬움 : (타입)피연산자
타입 | 설명 | 사용예 |
---|---|---|
int -> char | (char)65 | 'A' |
char -> int | (int)'A' | 65 |
floar -> int | (int)1.6f | 1 |
int -> floar | (float)10 | 10.0f |
기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환된다.
규칙 1. 두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
long + int -> long + long -> long
float + int -> float + float -> float
규칙 2. 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.
byte + short -> int + int -> int
char +short -> int + int -> int
주의할 점
나머지 연산자는 왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환한다.
System.out.println(10%8); // 10을 8로 나눈 나머지 2가 출력된다.
** 많이 쓰이는 친구!!
문자열을 비교할 때에는 == 대신 equals()를 사용해야 한다.
기본형 변수는 값을 저장하기 때문에 == 가 가능하지만, 참조형 변수(str 등)는 주소값을 저장하기 때문에 '같음'의 비교가 어렵다!
String result = new String("abc");
boolean result = str.equals("abc");
조건식 ? 식1 : 식2
조건식의 평가결과가 true이면 식1이. false이면 식2가 연산결과가 된다.
result = (x > y ) ? x : y ;
// 'x > y'의 결과가 참이면 변수 result에는 x의 값이 저장되고, 거짓이면 y의 값이 저장된다.
영문 알파벳을 사용하는 문자 인코딩.
참고 도서 : 『JAVA의 정석 기초편』, 남궁 성, 도우출판
아스키코드표 출처 : http://cafe.daum.net/flowlife