자바 키워드 목록
List of Java keywords자바 프로그래밍 언어에서 키워드는 언어에 사전 정의된 의미를 가진 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]
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 문을 만드는 데 사용되며, 이 문장은 부울 식을 테스트한다. 이 표현식이 평가되는 경우true
if 문과 관련된 문장 블록을 실행한다. 이 키워드는 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]
new
- 클래스 또는 배열 개체의 인스턴스를 만드는 데 사용됨. 이 목적을 위해 키워드를 사용하는 것은 완전히 필요한 것은 아니지만(스칼라에서 예시한 바와 같이), 방법 및 클래스 이름에 대해 서로 다른 네임스페이스의 존재를 가능하게 하지만, 새로운 객체가 실제로 생성된다는 것과 그것이 어떤 런타임 유형인지(논의적으로 코드에 의존성을 도입하는 것)의 정적 및 로컬로 정의한다.
package
- Java 패키지는 유사한 클래스와 인터페이스로 구성된 그룹이다. 패키지는 다음과 함께 선언된다.
package
키워드
protected
- 그
protected
키워드는 메서드, 필드 또는 내부 클래스의 선언에 사용된다. 보호 멤버는 동일한 패키지에서 해당 클래스의 하위 클래스 또는 클래스에 의해서만 접근할 수 있다.[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
예외의 유무에 관계없이 조항 atry
블록에 하나 이상의 블록이 있어야 함catch
조항 또는 a조항finally
막다
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
- 기준 리터럴 값.
사용되지 않음
strictfp
(J2SE 1.2에 추가)[4]- 자바에서는 키워드로 예약되어 있지만,
strictfp
구식이고, 더 이상 어떤 기능도 없다.[25] 이전에 이 키워드는 이동성을 보장하기 위해 부동소수점 계산의 정밀도와 반올림을 제한하는 데 사용되었다.[8]
참고 항목
참조
- ^ "Java Platform, Standard Edition Java API Reference".
- ^ a b c "Java Language Specification - Section 3.9: Keywords". The Java Language Specification. Oracle. 2018-08-21. Retrieved 2018-12-25.
- ^ Goetz, Brian. "Warning about single underscore identifier". OpenJDK Lambda Development.
- ^ a b c "Java Language Keywords". The Java Tutorials. Sun Microsystems, Inc. Retrieved 2017-07-24.
- ^ a b c d e f "Primitive Data Types". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
- ^ a b c d e f Flanagan 2005, 페이지 22.
- ^ 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.
- ^ a b c d e f g h i Flanagan 2005, 페이지 66–67.
- ^ a b c "The switch Statement". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2014-12-18.
- ^ a b c Flanagan 2005, 페이지 46-48.
- ^ a b "The while and do-while Statements". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
- ^ a b Flanagan 2005, 페이지 48-49.
- ^ a b "The if-then and if-then-else Statements". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
- ^ a b Flanagan 2005, 페이지 44-46.
- ^ a b "The for Statement". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
- ^ Flanagan 2005, 페이지 50-54.
- ^ a b c "Controlling Access to Members of a Class". The Java Tutorials. Sun Microsystems, Inc. February 14, 2008. Retrieved 2008-12-03.
- ^ "Java Object Serialization Specification version 1.5.0". Sun/Oracle. 2004. 1.5 Defining Serializable Fields for a Class. Retrieved 2010-09-16.[영구적 데드링크]
- ^ Grosso, William (November 21, 2001). "Java RMI: Serialization". ONJava. O'Reilly Media. Declaring serialPersistentFields. Retrieved 2010-09-16.
- ^ "Java Volatile Keyword".
- ^ a b c "Sealed Classes". docs.oracle.com. Oracle Corporation. Retrieved 2021-08-07.
- ^ "Chapter 3. Lexical Structure". docs.oracle.com. Retrieved 2018-12-25.
- ^ "Switch Expressions". docs.oracle.com. Oracle Corporation. Retrieved 2020-12-27.
- ^ a b Flanagan 2005, 페이지 20.
- ^ "JEP 306: Restore Always-Strict Floating-Point Semantics".
외부 링크
- Gosling, James; Joy, Bill; Steele, Guy; Bracha, Gilad (June 2005). Java Language Specification (Third ed.). Addison-Wesley Professional. ISBN 978-0-321-24678-3. Retrieved 2008-12-03.
- Flanagan, David (March 2005). Java in a Nutshell (Fifth ed.). O'Reilly Media. ISBN 978-0-596-00773-7. Retrieved 2010-03-03.