자바 예약어

4 minute read

예약어란 무엇인가

  • 특정 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에, 혹은 앞으로 업데이트를 통해 사용하기 위해 예약해둔 단어들이다.
  • 식별자로 사용할 수 없다. 즉, 오브젝트나 변수 이름으로 사용될 수 없다.
  • 사용하려 시도하면 에러 메세지가 나오게 된다.

55가지 예약어 목록과 간단한 코멘트

  1. _ 언더스코어도 식별자로 사용할 수 없다.
  2. abstract 추상클래스, 추상메소드.
  3. assert 검증.
  4. boolean “참”, “거짓”의 자료형.
  5. break 주로 if문과 함께 사용되어 반복문에서 벗어나게 한다.
  6. byte 데이터 타입, 정수형. 8 bits.
  7. case switch 조건문에서 사용. 리터럴과 상수 허용, 변수는 안된다.
  8. catch try ~ catch ~ finally 문에서 사용된다. 예외처리를 한다. (try를 보세요.)
  9. char 데이터 타입, 문자형. 2 byte. 하나의 문자만 저장한다.
  10. class 모든 코드는 클래스 안에 존재한다.
  11. const 키워드 예약어 이지만 사용되지 않는다. 자바에서는 final을 이용하여 상수를 정의한다.
  12. continue break와 함께 반복을 제어한다. continue를 만나면 해당 반복부분 탈출 후 다음반복을 실행한다.
  13. default 접근제어자이다. 따로 설정을 안하면 default로 설정된다. 또한 switch 조건문에서 case 해당이 없으면 default를 실행한다.
  14. do do ~ while 반복문에서 사용된다. while 문의 경우 조건이 충족되지 않으면 한번도 실행되지 않을 수 있지만, do ~ while 문의 경우엔 무조건 한번은 실행된다.
  15. double 데이터 타입, 실수형. 8 byte.
  16. else if ~ else 조건문에서 쓰인다. if / if ~ else / if ~ else if ~ else 의 경우가 있다.
  17. enum Enumeration type. 서로 관련있는 상수들을 모아 클래스형 선언하고 순서에 따라 index 값도 갖는다.
  18. extends 클래스 상속에 쓰인다. 하나의 클래스만 상속 가능하다. 반면에 implements는 인터페이스를 상속하며, 다중상속이 가능하다.
  19. false boolean 자료형의 “참”, “거짓” 중 “거짓”의 값.
  20. final 단 한번만 값이 지정될 수 있는 entity를 선언하는 경우에 사용된다. 한마디로 상수이다. 일단 한번 값이 주어지면 항상 같은 값을 유지한다. 그런데 왜? final 선언에는 static이 관습적으로 따라붙을까? 그것은 새 인스턴스 마다 메모리 공간을 할당하는 대신에 정적 선언으로 메모리 공간을 하나만 차지하게 하고 그 메모리를 공유하는 것이 더 경제적이기 때문이다.
  21. finally try ~ catch ~ finally 문에서 사용된다. (try를 보세요.)
  22. float 데이터 타입, 실수형. 4 byte.
  23. for for 반복문.
  24. goto 키워드 예약어 이지만 사용되지 않는다.
  25. if if ~ else 조건문에서 쓰인다.
  26. implements 클래스 상속에 쓰인다. 인터페이스를 상속하며 다중상속이 가능하다. 반면 extends는 하나의 클래스만 상속한다.
  27. import 패키지, 클래스, 인터페이스를 가져온다.
  28. instanceof 자료형을 비교해 주는 연산자이다. “참” 혹은 “거짓” 값을 돌려준다.
  29. int 데이터 타입, 정수형. 4 byte.
  30. interface 클래스와 비슷하지만 다르다. 추상메서드를 가지고 있으며 상속하는 클래스에서 구현해야 한다. 다중상속이 가능하다.
  31. long 데이터 타입, 정수형. 8 byte.
  32. native Java Native Interface는 C, C++ 등의 네이티브 언어로 작성된 네이티브 메서드를 호출하는데 사용하는 기능.
  33. new 클래스로부터 객체를 생성하여 메모리를 할당한다.
  34. null 값의 초기화 없이 변수를 선언할 때 사용한다. 메모리를 할당하지 않으며, boolean 이나 int 같은 원시자료형에 사용될 수 없다.
  35. package 클래스들을 모아 넣고 관리하는 자바의 디렉토리.
  36. private 접근지정자, 클래스 내부에서만 접근 가능.
  37. protected 접근지정자, 클래스 내부와 상속받은 클래스, 동일 패키지 내의 클래스에서 접근 가능.
  38. public 접근지정자, 클래스 외부에서 제한 없이 접근 가능.
  39. return 함수에서 벗어날 때 쓰인다. 값을 반환할 때 도 있고, void 함수의 경우 반환 없이 함수를 벗어나게 하지만 return 없이도 자동으로 벗어나므로 생략할 수 있다.
  40. short 데이터 타입, 정수형. 2 byte.
  41. static 메모리에 한번 할당되어 변하지 않는 정적인 것.
  42. strictfp 자바에서 float이나 double형은 비트연산의 정밀도가 달라서 부동소수점 연산시 소수점 연산의 에러 가능성이 항상 존재한다. strictfp 키워드를 클래스나 메소드에 지정하는 경우 부동수소점 숫자의 정밀도를 보장한다.
  43. super 자신을 가리키는 키워드가 this라면, 부모를 가리키는 키워드는 super이다.
  44. switch 변수를 여러가지 값과 비교해 준다. 각각의 값이 case라고 불리고 switch되는 변수는 case에 순차적으로 비교를 받는다.
  45. synchronized 스레드의 동기화를 위해 쓰인다. 여러개의 스레드가 한개의 자원을 사용하고자 할 때, 현재 데이터를 사용하고 있는 해당 스레드를 제외하고 나머지 스레드 들은 데이터에 접근할 수 없도록 막는다.
  46. this 자신을 가리키는 키워드. 반면 부모를 가리키는 키워드는 super이다.
  47. throw 조건을 통해 찾은 값에 대해 예외를 던진다.
  48. throws throw가 예외를 발생시킨다면, throws는 예외를 상위 메소드로 전가한다.
  49. transient Serialize하는 과정에서 제외하고 싶은 경우 선언하는 키워드. 패스워드 같은 보안정보가 전송되지 않게 할 수 있다.
  50. true boolean 자료형의 “참”, “거짓” 중 “참”의 값.
  51. try try ~ catch ~ finally 문에서 사용된다. 사용자의 잘못된 조작이나 개발자의 잘못된 코딩으로 발생하는 에러가 “예외”인데, 에러로 인해 프로그램을 종료하지 않고 예외처리(Exception Handling)를 통해 프로그램을 계속 작동하게 할 수 있다. try {예외발생코드} catch(예외 클래스e) {예외처리} finally {항상 처리되는 코드}
  52. var 컴파일러가 컨텍스트에 따라 변수의 종류를 추론하게 한다. 이 또한 변수명이나 함수명으로 쓰일 수 없다.
  53. void 리턴값이 없는 메소드에 붙는다.
  54. volatile 변수를 메인메모리에 저장하겠다고 명시하는 것. CPU cache를 통하지 않고 Main Memory에서 Read/Write 한다. Object를 공유하는 Multi Thread 어플리케이션 환경에서 Thread가 변수값을 읽어올 때에 각각의 CPU cache에 저장된 값이 달라 변수값 불일치 문제가 발생할 수 있을 경우 사용한다.
  55. while 반복문. 초기값을 while문 바깥에 지정해 줘야한다. do ~ while 문의 경우 무조건 실행한 뒤에 조건을 확인하지만 while문은 조건이 맞아야만 실행한다.

정보 출처

  • 검색 출처를 남기기 위한 목적이지만 하나 하나 다시 방문해서 읽어보자.

-Wikipedia - List of Java Keywords
-ThoughtCo. - Reserved Worlds in Java
-Studymake 티스토리 - 자바의 추상클래스
-Vaert 티스토리 - 자바 예약어 총정리
-환상술사 네이버 블로그 - 자바에서 assert문 사용하기
-아라비안나이트 티스토리 - 자바 break문, continue문, 이름 붙은 반복문 사용법
-코딩벌레 티스토리 - 자바 반복문제어
-프로그래머스 - switch문
-프로그래머스 - do while문
-TCPSCHOOL - 상수
-w3schools - booleans
-Wikipedia - final
-Uno’s - 왜 자바에서 final 멤버 변수는 관례적으로 static을 붙일까?
-tutorialspoint - Interfaces
-w3schools - import
-edpresso - What is the instanceof operator used for in Java?
-코딩팩토리 티스토리 - static의 의미와 사용법
-위키피디아 - 예약어
-개발하는 두더지 티스토리 - 네이티브 메서드는 신중하게 사용하라
-버물리의 IT공부 티스토리 - 메인메소드 public static void main(String[] args)를 이해하자
-조커 네이버 - new 연산자
-codementor community - Class vs Object vs Instance by Steve Donovan
-stack overflow - What is null in Java?
-okky - null과 ""의 차이점?
-geeksforgeeks - return keyword in Java
-망나니개발자 티스토리 - static변수와 static 메소드
-프로그래머스 - super와 부모생성자
-tutorialspoint - switch statement in java
-코딩스타트 티스토리 - syncronized 란? 사용법?
-개발자의 하루 티스토리 - throw와 throws 의 차이점
-BeginnersBook - How to throw exception in java with example by Chaitanya Singh
-HowToDoInJava - Java try catch finally blocks
-코딩팩토리 티스토리 - 자바 예외처리 Try Catch문 사용법
-geeksforgeeks - java while loop with examples
-Nesoy Blog - Java transient이란?
-Nesoy Blog - Java volatile이란?
-나만의 기록들 티스토리 - 자바_enum 클래스 (열거형_enumeration type)
-자바공작소 티스토리 - JAVA 접근제한자 public protected default private