자바 키워드 목록

List of Java keywords
파란색과 굵은 글꼴로 강조 표시된 키워드가 있는 Java 코드 조각

자바 프로그래밍 언어에서 키워드는 언어에 사전 정의된 의미를 가진 67개의 예약 단어[1] 중 하나이다. 이 때문에 프로그래머는 변수 이름, 방법, 클래스 또는 다른 식별자로써 키워드를 사용할 수 없다.[2] 이 67개의 키워드 중 16개는 문맥상 예약되어 있을 뿐이며, 표준 예약 단어와 달리 식별자로 사용할 수 있는 경우도 있다. 언어의 특별한 기능 때문에 대부분의 자바 통합 개발 환경구문 강조표시를 사용하여 키워드를 다른 색상으로 표시하여 쉽게 식별할 수 있다.

리스트

_
자바 9에 추가된 밑줄은 키워드가 되어 더 이상 변수 이름으로 사용할 수 없다.[3]
abstract
정의가 없는 방법은 추상적인 것으로 선언하고, 이를 포함하는 클래스는 추상적인 것으로 선언해야 한다. 추상적인 수업은 인스턴스화할 수 없다. 추상적인 방법은 하위 클래스에서 구현되어야 한다. 추상 키워드는 변수나 생성자와 함께 사용할 수 없다. 추상 클래스는 전혀 추상적인 방법을 가질 필요가 없다는 점에 유의하십시오.
assert (J2SE 1.4에 추가)[4]
어설프는 개발자가 그 장소에서 술어가 항상 진실이라고 생각한다는 것을 나타내기 위해 자바 프로그램에 배치된 술어(진실-거짓 진술)를 기술한다. 런타임에 주장이 거짓으로 평가되면 어설션 실패가 발생하며, 이는 일반적으로 실행을 중단하게 된다. 선택적으로 ClassLoader 메서드를 사용하여 활성화하십시오.
boolean
"true" 또는 "false" 값에 대해서만 부울 변수를 정의하십시오. 기본적으로 부울 원시 유형의 값은 false이다. 이 키워드는 또한 메서드가 원시 유형의 값을 반환한다고 선언하는 데 사용된다. boolean.
break
현재 루프 본체에서 실행을 종료하는 데 사용된다.
byte
byte 키워드는 8비트 서명된 2의 보완 정수를 포함할 수 있는 필드를 선언하는 데 사용된다.[5][6] 이 키워드는 또한 메서드가 원시 유형의 값을 반환한다고 선언하는 데 사용된다. byte.[7][8]
case
에 있는 성명 switch 블록에 하나 이상의 레이블을 붙일 수 있음 case 또는 default 꼬리표switch 명령문은 그 식을 평가한 다음 일치에 따르는 모든 문장을 실행한다. case 레이블; 참조 switch.[9][10]
catch
a와 함께 사용 try 블록과 선택 사항 finally 막다. 의 진술. catch 차단: 특정 유형의 예외가 발생할 경우 수행할 작업을 지정하십시오. try 막다
char
Java 소스 파일의 문자 집합의 문자를 보유할 수 있는 문자 변수를 정의한다.
class
특정 종류의 개체의 구현을 정의하는 유형. 클래스 정의는 인스턴스와 클래스 필드, 메서드내부 클래스를 정의하며 클래스가 구현하는 인터페이스와 클래스의 즉각적인 슈퍼 클래스를 지정한다. superclass가 명시적으로 지정되지 않은 경우 superclass는 암시적으로 Object클래스 키워드는 Class.class 형식에서 해당 클래스의 인스턴스 없이도 클래스 객체를 얻을 수 있다. 예를 들어, 새로운 String().getClass() 대신 String.class를 사용할 수 있다.
const
사용하지 않지만 예약되어 있다.
continue
현재 루프 본체의 끝에서 프로그램 실행을 재개하는 데 사용된다. 라벨이 뒤따를 경우, continue 라벨이 부착된 루프 본체의 끝에서 실행을 재개한다.
default
default 키워드는 선택적으로 스위치 문에 사용되어 실행될 명령문 블록에 라벨을 붙일 수 있다. case 지정된 값과 일치한다([9][10] 참조). 또는, default 키워드를 사용하여 Java 주석에서 기본값을 선언할 수도 있다. Java 8 이후로는 default 키워드를 사용하여 인터페이스가 메서드의 구현을 제공할 수 있다.
do
do 키워드와 함께 사용됨 while 루프와 연결된 문 블록을 실행한 다음, 루프와 연관된 부울 식을 테스트하는 동안 루프를 생성한다. while. 표현식이 평가되는 경우 true, 블록이 다시 실행됨; 이는 표현식이 다음 값을 평가할 때까지 계속됨 false.[11][12]
double
double 키워드는 64비트 이중 정밀도를 담을 수 있는 변수를 선언하는 데 사용된다.IEEE 754 부동 소수점 번호.[5][6] 이 키워드는 또한 메서드가 원시 유형의 값을 반환한다고 선언하는 데 사용된다. double.[7][8]
else
else 키워드와 함께 사용됨 if if-contraction 문을 생성하여 부울 식을 테스트한다. 식이 평가한 경우 true, 에 관련된 진술의 블록 if 평가된다. 평가 대상인 경우 false, 에 관련된 진술의 블록 else 평가된다.[13][14]
enum (J2SE 5.0에 추가)[4]
열거된 유형을 선언하는 데 사용되는 Java 키워드. 열거형이 기본 클래스를 확장함 Enum.
extends
클래스 선언에서 수퍼클래스를 지정하기 위해 사용되며, 인터페이스 선언에서 하나 이상의 수퍼인터페이스 지정에 사용된다. 클래스 X는 필드 또는 메서드를 클래스 Y에 추가하거나 클래스 Y의 메서드를 재정의하여 클래스 Y를 확장하여 기능을 추가한다. 인터페이스 Z는 메소드를 추가하여 하나 이상의 인터페이스를 확장한다. 클래스 X는 클래스 Y의 하위 클래스라고 하며, 인터페이스 Z는 확장되는 인터페이스의 하위 인터페이스라고 한다.
제네릭스에서 형식 매개 변수의 상한을 지정하는 데도 사용된다.
final
나중에 변경하거나 파생할 수 없는 엔터티를 한 번 정의하십시오. 구체적으로는 최종 클래스를 하위 분류할 수 없고, 최종 방법을 재정의할 수 없으며, 실행된 명령에서 최종 변수는 최대 한 번에 왼쪽 표현식으로 발생할 수 있다. 최종 클래스의 모든 메서드는 암묵적으로 final.
finally
이전에 정의한 블록에 대한 문 블록을 정의하기 위해 사용됨 try 키워드finally 실행이 종료된 후 블록 실행 try 블록 및 관련 항목 catch 예외를 던졌든 잡혔든, 집행유무를 불문하고 조항들. try 또는 catch 을 사용한 블록 return 키워드
float
float 키워드는 32비트 단일 정밀도 IEEE 754 부동 소수점 번호를 보유할 수 있는 변수를 선언하는 데 사용된다.[5][6] 이 키워드는 또한 메서드가 원시 유형의 값을 반환한다고 선언하는 데 사용된다. float.[7][8]
for
for 키워드는 변수 초기화, 부울식 및 증분을 지정하는 for 루프 생성에 사용된다. 변수 초기화를 먼저 수행한 다음 부울 식을 평가한다. 식이 다음으로 평가되는 경우 true, 루프와 관련된 문장의 블록을 실행한 다음 증분을 수행한다. 그런 다음 부울 식이 다시 평가되며, 이는 식이 다음 값을 평가할 때까지 계속된다. false.[15]
J2SE 5.0을 기준으로, for 키워드를 사용하여 배열이나 배열을 지정하는 이른바 "루프 루프"[16]를 만들 수도 있다. Iterable 객체; 루프의 각 반복은 배열의 다른 요소를 사용하여 연관된 문장 블록을 실행한다. Iterable.[15]
goto
사용하지 않지만 예약되어 있다.
if
if 키워드는 if 문을 만드는 데 사용되며, 문장은 부울 식을 테스트한다. 이 표현식이 평가되는 경우 trueif 문과 관련된 문장 블록을 실행한다. 이 키워드는 if-else 문을 만드는 데도 사용할 수 있다.[13][14] 참조.
implements
현재 클래스에 의해 구현되는 하나 이상의 인터페이스를 지정하기 위한 클래스 선언에 포함됨. 클래스는 인터페이스에 의해 선언된 유형과 추상적인 방법을 이어받는다.
import
참조에 패키지 이름을 포함하지 않고 나중에 참조할 클래스 또는 전체 Java 패키지를 지정하는 데 소스 파일의 시작 부분에 사용됨. J2SE 5.0 이후로 import 문장이 가져올 수 있다. static 반의 구성원들
instanceof
개체 참조를 첫 번째 피연산자로, 클래스 또는 인터페이스를 두 번째 피연산자로 가져와 부울 결과를 생성하는 이진 연산자.instanceof 운영자는 객체의 런타임 유형이 클래스 또는 인터페이스와 호환되는 할당인 경우에만 true로 평가한다.
int
int 키워드는 32비트 서명된 2의 보완 정수를 담을 수 있는 변수를 선언하는 데 사용된다.[5][6] 이 키워드는 또한 메서드가 원시 유형의 값을 반환한다고 선언하는 데 사용된다. int.[7][8]
interface
추상 또는 기본 메서드만 포함하는 특수 유형의 클래스를 선언하는 데 사용됨(상수)static final) 필드 및 static 인터페이스. 그것은 나중에 와의 인터페이스를 선언하는 클래스에 의해 구현될 수 있다. implements 키워드 자바에서는 복수의 상속을 할 수 없기 때문에, 그것을 회피하기 위해 인터페이스가 이용된다. 인터페이스는 다른 인터페이스 내에서 정의될 수 있다.
long
long 키워드는 64비트 서명된 2의 보완 정수를 담을 수 있는 변수를 선언하는 데 사용된다.[5][6] 이 키워드는 또한 메서드가 원시 유형의 값을 반환한다고 선언하는 데 사용된다. long.[7][8]
native
메서드 선언에서 메서드가 동일한 Java 소스 파일에서 구현되지 않고 오히려 다른 언어로 구현됨을 지정하는 데 사용된다.[8]
new
클래스 또는 배열 개체의 인스턴스를 만드는 데 사용됨. 이 목적을 위해 키워드를 사용하는 것은 완전히 필요한 것은 아니지만(스칼라에서 예시한 바와 같이), 방법 및 클래스 이름에 대해 서로 다른 네임스페이스의 존재를 가능하게 하지만, 새로운 객체가 실제로 생성된다는 것과 그것이 어떤 런타임 유형인지(논의적으로 코드에 의존성을 도입하는 것)의 정적 및 로컬로 정의한다.
package
Java 패키지는 유사한 클래스와 인터페이스로 구성된 그룹이다. 패키지는 다음과 함께 선언된다. package 키워드
private
private 키워드는 메서드, 필드 또는 내부 계층의 선언에 사용된다. 개인 구성원은 자신의 클래스의 다른 구성원만 접근할 수 있다.[17]
protected
protected 키워드는 메서드, 필드 또는 내부 클래스의 선언에 사용된다. 보호 멤버는 동일한 패키지에서 해당 클래스의 하위 클래스 또는 클래스에 의해서만 접근할 수 있다.[17]
public
public 키워드는 클래스, 메서드 또는 필드의 선언에 사용되며, 공개 클래스, 메서드, 필드는 모든 클래스의 구성원이 액세스할 수 있다.[17]
return
메서드의 실행을 완료하는 데 사용된다. 호출자에게 반환되는 메서드 정의에서 요구하는 값이 뒤따를 수 있다.
short
short 키워드는 16비트 서명된 2의 보완 정수를 포함할 수 있는 필드를 선언하는 데 사용된다.[5][6] 이 키워드는 또한 메서드가 원시 유형의 값을 반환한다고 선언하는 데 사용된다. short.[7][8]
static
필드, 메서드 또는 내부 클래스를 클래스 필드로 선언할 때 사용한다. 클래스는 해당 클래스의 인스턴스 수에 관계없이 클래스 필드의 복사본 하나를 유지 관리한다. static 또한 메소드를 클래스 메소드로 정의하기 위해 사용된다. 클래스 메서드는 특정 인스턴스가 아닌 클래스에 바인딩되며 클래스 필드에서만 작동할 수 있다.(클래스 및 인터페이스로 선언됨) static 다른 클래스 또는 인터페이스의 구성원은 실제로 최상위 클래스이고 내부 클래스가 아니다.
super
상속은 기본적으로 자바에서 동적 바인딩 또는 런타임 다형성을 달성하기 위해 사용된다. 클래스가 표시되는 클래스에 상속된 클래스의 멤버에 액세스하는 데 사용됨. 하위 클래스가 오버라이드 메서드와 해당 수퍼 클래스의 숨겨진 멤버에 액세스할 수 있도록 허용.super 키워드는 또한 슈퍼클래스의 생성자에서 생성자로의 호출을 전달하는 데 사용된다.
제네릭스에서 형식 매개 변수의 하한을 지정하는 데도 사용된다.
switch
switch 키워드와 함께 사용됨 case 그리고 default 변수를 평가하는 스위치 문을 생성하여 해당 값을 특정 값과 일치시키십시오. case, 그리고 그것과 관련된 진술의 블록을 실행한다. case.아니면 case 값과 일치하며, 다음에 의해 라벨이 표시된 선택적 블록 default 포함된 경우 실행됨.[9][10]
synchronized
현재 스레드가 코드를 실행하는 동안 객체에 대한 뮤텍스 잠금을 획득하기 위한 메서드 또는 코드 블록의 선언에 사용된다.[8] 정적 메서드의 경우 잠긴 개체는 클래스의 Class. 동일한 객체에서 한 번에 한 스레드를 실행하도록 보장한다. 실행이 동기화된 코드를 종료하면 뮤텍스 잠금이 자동으로 해제된다. 필드, 클래스 및 인터페이스는 동기화된 것으로 선언할 수 없다.
this
클래스가 표시되는 클래스의 인스턴스를 나타내는 데 사용됨. this 클래스 멤버에 액세스하고 현재 인스턴스에 대한 참조로 사용할 수 있다.this 키워드는 또한 같은 클래스의 한 생성자에서 같은 클래스의 다른 생성자로 호출을 전달하는 데 사용된다.
throw
선언된 예외 인스턴스를 던지게 한다. 이로 인해 실행은 다음에서 선언하는 첫 번째 동봉 예외 처리기로 계속된다. catch 할당 호환 예외 유형을 처리하는 키워드. 현재 메소드에서 이러한 예외 핸들러를 찾을 수 없는 경우 메소드가 반환되고 호출 메소드에서 프로세스가 반복된다. 스택의 어떤 메서드 호출에서 예외 핸들러를 찾을 수 없는 경우, 예외는 스레드의 미발견 예외 핸들러로 전달된다.
throws
메소드 선언에서 메소드 내에서 처리되지 않고 프로그램의 차상위 레벨로 전달되는 예외를 지정하는 데 사용된다. 다음 인스턴스가 아닌 메서드에서 검색되지 않은 모든 예외 RuntimeException 를 사용하여 선언되어야 한다. throws 키워드
transient
인스턴스 필드가 객체의 기본 직렬화 양식의 일부가 아님을 선언한다. 객체가 직렬화되면 해당 비투명 인스턴스(instance) 필드의 값만 기본 직렬 표현에 포함된다. 객체가 역직렬화되면 과도 필드는 기본값으로만 초기화된다. serialPersistentFields 테이블이 클래스 계층에 선언된 경우와 같이 기본 양식을 사용하지 않는 경우 모두 transient 키워드는 무시된다.[18][19]
try
예외 처리가 있는 문 블록을 정의한다. 예외를 내부에 두는 경우 try 선택 사항인 블록 catch 블록은 선언된 예외 유형을 처리할 수 있다. 또한 선택 사항. finally 실행이 종료될 때 실행될 블록을 선언할 수 있음 try 막아서 catch 예외의 유무에 관계없이 조항 a try 블록에 하나 이상의 블록이 있어야 함 catch 조항 또는 a조항 finally 막다
void
void 키워드는 메서드가 값을 반환하지 않음을 선언하는 데 사용된다.[7]
volatile
필드 선언에서 스레드 전체에 걸쳐 변수에 대한 변경사항을 가시적으로 확인할 수 있도록 보장하기 위해 사용된다. 휘발성 변수의 모든 읽기는 CPU 캐시가 아닌 메인 메모리에서 읽힐 것이며, 휘발성 변수에 대한 모든 쓰기는 CPU 캐시뿐만 아니라 메인 메모리에 기록될 것이다.[20] 따라서 방법, 클래스 및 인터페이스는 휘발성으로 선언될 수 없으며 국소 변수나 매개변수도 선언할 수 없다.
while
while 키워드는 while 루프 생성에 사용되며, 이 키워드는 부울 식을 테스트하고 식이 평가한 경우 루프와 연결된 문 블록을 실행한다. true; 이 표현은 다음과 같이 평가될 때까지 계속된다. false. 이 키워드는 또한 실행루프를 만드는 데 사용될 수 있다.[11][12] 참조.

예약된 식별자

다음 식별자는 문맥 키워드로서, 일부 문맥에서만 제한된다.

exports

module

non-sealed
밀봉된 클래스를 확장하는 클래스 또는 인터페이스가 알 수 없는 클래스로 확장될 수 있음을 선언하는 데 사용된다.[21]
open
opens
permits
허가 조항은 밀봉된 클래스를 확장할 수 있는 클래스를 명시한다.[21]
provides
record

requires

sealed
밀봉된 클래스 또는 인터페이스는 그렇게 하도록 허용된 클래스 및 인터페이스에 의해서만 확장되거나 구현될 수 있다.[21]
to
transitive
uses
var
유형 이름으로 사용할 수 없는 특수 식별자(Java 10 이후).[22]
with
yield
레이블이 지정된 문 그룹을 사용할 때 스위치 식 값을 설정하는 데 사용(예: case L:).[23]

리터럴 값을 위한 예약된 단어

true
부울 리터럴 값.
false
부울 리터럴 값.
null
기준 리터럴 값.

사용되지 않음

const
자바에서는 키워드로 예약되어 있지만, const 사용되지 않고 기능이 없다.[2][24] Java에서 상수를 정의하려면 final 키워드
goto
자바에서는 키워드로 예약되어 있지만, goto 사용되지 않고 기능이 없다.[2][24]
strictfp (J2SE 1.2에 추가)[4]
자바에서는 키워드로 예약되어 있지만, strictfp 구식이고, 더 이상 어떤 기능도 없다.[25] 이전에 이 키워드는 이동성을 보장하기 위해 부동소수점 계산의 정밀도와 반올림을 제한하는 데 사용되었다.[8]

참고 항목

참조

  1. ^ "Java Platform, Standard Edition Java API Reference".
  2. ^ a b c "Java Language Specification - Section 3.9: Keywords". The Java Language Specification. Oracle. 2018-08-21. Retrieved 2018-12-25.
  3. ^ Goetz, Brian. "Warning about single underscore identifier". OpenJDK Lambda Development.
  4. ^ a b c "Java Language Keywords". The Java Tutorials. Sun Microsystems, Inc. Retrieved 2017-07-24.
  5. ^ a b c d e f "Primitive Data Types". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
  6. ^ a b c d e f Flanagan 2005, 페이지 22.
  7. ^ a b c d e f g "Returning a Value from a Method". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
  8. ^ a b c d e f g h i Flanagan 2005, 페이지 66–67.
  9. ^ a b c "The switch Statement". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2014-12-18.
  10. ^ a b c Flanagan 2005, 페이지 46-48.
  11. ^ a b "The while and do-while Statements". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
  12. ^ a b Flanagan 2005, 페이지 48-49.
  13. ^ a b "The if-then and if-then-else Statements". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
  14. ^ a b Flanagan 2005, 페이지 44-46.
  15. ^ a b "The for Statement". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
  16. ^ Flanagan 2005, 페이지 50-54.
  17. ^ a b c "Controlling Access to Members of a Class". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
  18. ^ "Java Object Serialization Specification version 1.5.0". Sun/Oracle. 2004. 1.5 Defining Serializable Fields for a Class. Retrieved 2010-09-16.[영구적 데드링크]
  19. ^ Grosso, William (November 21, 2001). "Java RMI: Serialization". ONJava. O'Reilly Media. Declaring serialPersistentFields. Retrieved 2010-09-16.
  20. ^ "Java Volatile Keyword".
  21. ^ a b c "Sealed Classes". docs.oracle.com. Oracle Corporation. Retrieved 2021-08-07.
  22. ^ "Chapter 3. Lexical Structure". docs.oracle.com. Retrieved 2018-12-25.
  23. ^ "Switch Expressions". docs.oracle.com. Oracle Corporation. Retrieved 2020-12-27.
  24. ^ a b Flanagan 2005, 페이지 20.
  25. ^ "JEP 306: Restore Always-Strict Floating-Point Semantics".

외부 링크