자바에는 총 51개의 예약어가 있다. 자바에 있는 모든 예약어를 전부 사용할 일은 절대 없다. 몇몇 예약어는 이제 사용을 안하기 때문이다. 더 이상 사용하지 않는 예약어는 const와 goto 두 개다.
51개의 예약어를 종류별로 나누어 정리해보자.
타입 | 설명 |
byte | 8 bit 정수형 |
short | 16 bit 정수형 |
int | 32 bit 정수형 |
long | 63 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 | 예외를 던질 수도 있다는 것을 선언할 때 사용 |