키워드는 언어에서 특별한 의미를 가지는, 미리 예약한 단어이며, 구문 분석의 대상
예약어는 식별자로 사용할 수 없다.
식별자
public class MyClass { private int value; public void main(String[] args) { ... } }
- 해당 코드에서 MyClass, value, main, args 가 식별자
- 변수명, 상수명, 클래스명, 패키지명 등...을 선언할 때 붙이는 이름
주의!
이름을 지을 때는 예약어를 피해야 한다.
개발자가 단순히 식별을 위한 이름을 붙였으나, 그 이름이 예약어일 경우 코드가 원하는대로 작동하지 않게 된다.
타입 | 설명 |
---|---|
byte | 8 bit 정수형 |
short | 16 bit 정수형 |
int | 32 bit 정수형 |
long | 64 bit 정수형 |
float | 32 bit 소수형 |
double | 64 bit 소수형 |
char | 0 ~ 65,535 범위를 갖는 정수형 |
boolean | true, false 만 존재하는 타입 |
타입 | 설명 |
---|---|
package | 클래스의 패키지를 선언할 때 사용하며 코드 내에서 단 한 번만 지정 가능 |
import | 다른 패키지에 있는 클래스 및 그 안에 선언된 요소들을 사용하려고 할 때 사용 |
interface | 인터페이스 선언 |
abstract | abstract 클래스 선언 |
class | 클래스 선언 |
enum | enum 선언 |
implements | interface를 구현한다고 선언할 때 사용하며, 여러 개의 인터페이스를 구현할 경우에는 콤마로 구분하여 나열하면 됨 |
extends | 클래스나 abstract 클래스를 확장할 때 사용하며, 하나의 클래스만 확장 가능 |
private | 다른 클래스에서의 접근이 불가능하게 할 경우 사용 |
protected | 같은 패키지 내에 있거나 상속받은 경우에만 접근하게 할 경우 사용 |
public | 누구나 접근할 수 있도록 할 때 사용 |
final | 변수에 사용할 경우 값을 변경하지 못하도록 선언하며, 클래스에 사용할 경우 확장을 못하도록 선언 |
synchronized | 동시 접근 제어자 |
void | 메소드에서 반환하는 값이 없음을 선언 |
static | 하나의 인스턴스만 허용하는 제어자 |
return | 메소드를 종료하고 값을 반환할 때 사용 |
assert | 검증을 위한 로직 선언 |
native | 다른 언어로 구현된 것을 선언 |
new | 새로운 객체 생성을 선언 |
null | 참조되고 있는 객체가 없다는 것을 선언 |
strictfp | static 소수 값 제어자 |
super | 상위 클래스 참조 |
this | 현재 객체에 대한 참조를 명시적으로 나타낼 때 사용 |
transient | Serializable 할 때 저장되거나 전송되지 않는 객체를 선언 |
volatile | 하나의 변수를 여러 쓰레드가 참조할 때 동일한 값을 바라보도록 할 때 사용 |
instanceof | 참조변수가 참조하고 있는 인스턴스의 타입, 객체의 타입을 확인할 때 사용 |
타입 | 설명 |
---|---|
if | 데이터의 조건을 확인할 때 사용하며, if 괄호 안의 결과는 반드시 boolean 타입임 |
else | if 조건에 부합하지 않는 경우를 선언 |
switch | 정수형 및 String 문자열(JDK 7 이상)의 값에 따른 분기를 할 때 사용 |
case | switch에서 선언한 변수의 값에 따른 작업을 선언 |
default | switch에서 case 조건에 부합되는 값이 없을 때 기본적으로 수행되는 작업을 선언 |
for | 조건에 따른 반복을 변수에 따라서 실행하고자 할 대 사용 |
do | 한 번 수행 후 조건 반복을 하고자 할 때 사용 |
while | 조건에 다른 반복만 수행하고자 할 때 사용 |
continue | 반복 작업 시 조건 확인문으로 이동하고자 할 때 사용 |
break | 반복 작업을 종료하고자 할 때 사용 |
타입 | 설명 |
---|---|
try | 예외가 발생 가능한 코드의 범위 선언 |
catch | try로 묶은 범위에서 예외가 발생할 때 처리 방법 선언 |
finally | try~catch 수행 후 반드시 실행해야 하는 작업 선언 |
throw | 예외를 발생 시키거나 호출한 클래스로 넘길 때 사용 |
throws | 예외를 던질 수도 있다는 것을 선언할 때 사용 |
// 문법
참조변수 instanceOf 타입(클래스명)
// 예시
void doWork(Car c) {
if (c instanceOf Engine) { // 형변환이 가능한지 확인 후
Engine e = (Engine)c; // 형변환
e.water();
}
}