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