Articulo de referencia

Lista de palabras clave de Java

Un fragmento de código Java con las palabras clave resaltadas en azul y en negrita. En el lenguaje de programación Java , una palabra clave es cualquiera de las 68 palabras rese...

Un fragmento de código Java con las palabras clave resaltadas en azul y en negrita.

En el lenguaje de programación Java , una palabra clave es cualquiera de las 68 palabras reservadas [ 1 ] que tienen un significado predefinido en el lenguaje. Debido a esto, los programadores no pueden usar palabras clave en algunos contextos, como nombres de variables , métodos , clases o como cualquier otro identificador . [ 2 ] De estas 68 palabras clave, 17 de ellas están reservadas solo contextualmente y, a diferencia de las palabras reservadas estándar, a veces pueden usarse como identificador. Debido a sus funciones especiales en el lenguaje, la mayoría de los entornos de desarrollo integrados para Java utilizan resaltado de sintaxis para mostrar las palabras clave en un color diferente para facilitar su identificación.

Palabras clave reservadas

Las siguientes palabras son palabras clave reservadas y no pueden utilizarse como identificadores bajo ninguna circunstancia.

abstract
Un método sin definición debe declararse como abstracto, y la clase que lo contiene también debe declararse como abstracta. Las clases abstractas no pueden instanciarse. Los métodos abstractos deben implementarse en las subclases. La palabra clave `abstract` no se puede usar con variables ni constructores. Cabe destacar que una clase abstracta no está obligada a tener ningún método abstracto.
assert(añadido en J2SE 1.4 ) [ 3 ]
Una aserción describe un predicado (una declaración booleana) que se coloca en un programa Java para indicar que el desarrollador considera que el predicado siempre es verdadero en ese punto. Si una aserción se evalúa como falsa en tiempo de ejecución, se produce un fallo de aserción, lo que normalmente provoca la interrupción de la ejecución. Las aserciones están deshabilitadas en tiempo de ejecución por defecto, pero se pueden habilitar mediante una opción de línea de comandos o programáticamente a través de un método en el cargador de clases.
boolean
Define una variable booleana para los valores "verdadero" o "falso" solamente. Por defecto, el valor del tipo primitivo booleano es falso. Esta palabra clave también se utiliza para declarar que un método devuelve un valor del tipo primitivo boolean. En la mayoría de los demás lenguajes, el tipo booleano generalmente se llama simplemente bool.
break
Se utiliza para finalizar la ejecución en el cuerpo del bucle actual.
Se utiliza para salir de un switchbloqueo.
byte
La bytepalabra clave se utiliza para declarar un campo que puede contener un entero con signo de 8 bits en complemento a dos . [ 4 ] [ 5 ] Esta palabra clave también se utiliza para declarar que un método devuelve un valor del tipo primitivo byte. [ 6 ] [ 7 ]
case
Una instrucción en el switchbloque puede estar etiquetada con una o más caseetiquetas default. La switchinstrucción evalúa su expresión y luego ejecuta todas las instrucciones que siguen a la caseetiqueta coincidente; véase switch. [ 8 ] [ 9 ]
catch
Se utiliza junto con un trybloque y un finallybloque opcional. Las instrucciones del catchbloque especifican qué hacer si se produce un tipo específico de excepción try.
char
Define una variable de tipo carácter capaz de almacenar cualquier carácter del conjunto de caracteres del archivo fuente Java.
class
Un tipo que define la implementación de un tipo particular de objeto. Una definición de clase define campos de instancia y de clase , métodos y clases internas , además de especificar las interfaces que implementa la clase y la superclase inmediata de la clase. Si la superclase no se especifica explícitamente, se asume implícitamente . La palabra clave `class` también se puede usar en la forma para obtener un objeto sin necesidad de una instancia de esa clase. Por ejemplo, se puede usar en lugar de hacer .ObjectClass.classClassString.classnewString().getClass()
continue
Se utiliza para reanudar la ejecución del programa al final del cuerpo del bucle actual. Si va seguido de una etiqueta, continuereanuda la ejecución al final del cuerpo del bucle etiquetado que lo contiene.
default
La defaultpalabra clave puede usarse opcionalmente en una instrucción switch para etiquetar un bloque de instrucciones que se ejecutarán si no casecoincide con el valor especificado; ver switch. [ 8 ] [ 9 ] Alternativamente, la defaultpalabra clave también puede usarse para declarar valores predeterminados en una anotación Java . A partir de Java 8, la defaultpalabra clave puede usarse para permitir que una interfaz proporcione una implementación de un método.
do
La dopalabra clave se usa junto con whilepara crear un bucle do-while , que ejecuta un bloque de instrucciones asociado con el bucle y luego prueba una expresión booleana asociada con while. Si la expresión se evalúa como true, el bloque se ejecuta de nuevo; esto continúa hasta que la expresión se evalúa como false. [ 10 ] [ 11 ]
double
La palabra clave se utiliza para declarar una variable que puede almacenar un número de punto flotante IEEE 754 de doble precisióndouble de 64 bits . [ 4 ] [ 5 ] Esta palabra clave también se utiliza para declarar que un método devuelve un valor del tipo primitivo . [ 6 ] [ 7 ]double
else
La elsepalabra clave se utiliza junto con ifpara crear una instrucción if-else , que prueba una expresión booleana ; si la expresión se evalúa como verdadera , se evalúa trueel bloque de instrucciones asociado con la expresión; si se evalúa como falsa , se evalúa el bloque de instrucciones asociado con la expresión . [ 12 ] [ 13 ]iffalseelse
enum(añadido en J2SE 5.0 ) [ 3 ]
Una palabra clave de Java que se utiliza para declarar un tipo enumerado . Las enumeraciones extienden la clase base Enum.
extends
Se utiliza en la declaración de una clase para especificar la superclase; en la declaración de una interfaz, para especificar una o más superinterfaces. La clase X extiende la clase Y para añadir funcionalidad, ya sea añadiendo campos o métodos a la clase Y, o sobrescribiendo métodos de la clase Y. Una interfaz Z extiende una o más interfaces añadiendo métodos. Se dice que la clase X es una subclase de la clase Y; se dice que la interfaz Z es una subinterfaz de las interfaces que extiende.
También se utiliza para especificar un límite superior en un parámetro de tipo en Generics.
final
Define una entidad una sola vez que no se puede cambiar ni derivar posteriormente. Más específicamente: una clase final no puede ser subclaseada, un método final no puede ser sobrescrito y una variable final puede aparecer como máximo una vez como expresión izquierda en un comando ejecutado. Todos los métodos en una clase final son implícitamente final.
finally
Se utiliza para definir un bloque de instrucciones para un bloque definido previamente por la trypalabra clave. El finallybloque se ejecuta después de que la ejecución sale del trybloque y de cualquier catchcláusula asociada, independientemente de si se lanzó o capturó una excepción, o si la ejecución salió del método en medio de los bloques tryo catchusando la returnpalabra clave.
float
La palabra clave se utiliza para declarar una variable que puede almacenar un número de punto flotante IEEE 754 de precisión simplefloat de 32 bits . [ 4 ] [ 5 ] Esta palabra clave también se utiliza para declarar que un método devuelve un valor del tipo primitivo . [ 6 ] [ 7 ]float
for
La forpalabra clave se utiliza para crear un bucle `for` , que especifica la inicialización de una variable, una expresión booleana y un incremento. Primero se realiza la inicialización de la variable y luego se evalúa la expresión booleana. Si la expresión se evalúa como verdadera true, se ejecuta el bloque de instrucciones asociado al bucle y luego se realiza el incremento. A continuación, se vuelve a evaluar la expresión booleana; esto continúa hasta que la expresión se evalúa como verdadera false. [ 14 ]
A partir de J2SE 5.0 , la forpalabra clave también se puede usar para crear un llamado " bucle for mejorado " [ 15 ] , que especifica una matriz u Iterableobjeto; cada iteración del bucle ejecuta el bloque de instrucciones asociado usando un elemento diferente en la matriz o Iterable. [ 14 ]
if
La ifpalabra clave se utiliza para crear una sentencia if , que evalúa una expresión booleana ; si la expresión se evalúa como verdadera true, se ejecuta el bloque de sentencias asociado a la sentencia if. Esta palabra clave también se puede utilizar para crear una sentencia if-else ; véase else. [ 12 ] [ 13 ]
implements
Se incluye en la declaración de una clase para especificar una o más interfaces que implementa la clase actual. Una clase hereda los tipos y métodos abstractos declarados por las interfaces.
import
Se utiliza al principio de un archivo fuente para especificar clases o paquetes Java completos a los que se hará referencia posteriormente sin incluir sus nombres de paquete en la referencia. Desde J2SE 5.0, importlas instrucciones pueden importar staticmiembros de una clase. Un módulo Java puede importarse a sí mismo (escribiendo import module), importando automáticamente todos los paquetes exportados. [ 16 ]
instanceof
Operador binario que toma una referencia a un objeto como primer operando y una clase o interfaz como segundo operando, y produce un resultado booleano. El instanceofoperador se evalúa como verdadero si y solo si el tipo en tiempo de ejecución del objeto es compatible con la asignación de la clase o interfaz.
int
La intpalabra clave se utiliza para declarar una variable que puede almacenar un entero con signo de 32 bits en complemento a dos. [ 4 ] [ 5 ] Esta palabra clave también se utiliza para declarar que un método devuelve un valor del tipo primitivo int. [ 6 ] [ 7 ]
interface
Se utiliza para declarar una interfazstatic final que solo contiene métodos abstractos o predeterminados, campos constantes e staticinterfaces. Posteriormente, puede ser implementada por clases que declaren la interfaz con la implementspalabra clave. Dado que la herencia múltiple no está permitida en Java, las interfaces se utilizan para sortear esta restricción. Una interfaz puede definirse dentro de otra interfaz.
long
La longpalabra clave se utiliza para declarar una variable que puede almacenar un entero con signo de 64 bits en complemento a dos. [ 4 ] [ 5 ] Esta palabra clave también se utiliza para declarar que un método devuelve un valor del tipo primitivo long. [ 6 ] [ 7 ]
native
Se utiliza en las declaraciones de métodos para especificar que el método no está implementado en el mismo archivo fuente de Java, sino en otro lenguaje. [ 7 ]
new
Se utiliza para crear una instancia de una clase o un objeto de matriz. El uso de la palabra clave para este fin no es completamente necesario (como lo ejemplifica Scala ), aunque cumple dos propósitos: permite la existencia de diferentes espacios de nombres para métodos y nombres de clases, define de forma estática y local que se ha creado un nuevo objeto y de qué tipo en tiempo de ejecución es (lo que podría considerarse una introducción de dependencia en el código).
package
Un paquete Java es un grupo de clases e interfaces similares. Los paquetes se declaran con la packagepalabra clave.
private
La privatepalabra clave se utiliza en la declaración de un método, campo o clase interna; los miembros privados solo pueden ser accedidos por otros miembros de su propia clase. [ 17 ]
protected
La protectedpalabra clave se utiliza en la declaración de un método, campo o clase interna; los miembros protegidos solo pueden ser accedidos por miembros de su propia clase, subclases de esa clase o clases del mismo paquete . [ 17 ]
public
La publicpalabra clave se utiliza en la declaración de una clase, método o campo; las clases, métodos y campos públicos pueden ser accedidos por los miembros de cualquier clase. [ 17 ]
return
Se utiliza para finalizar la ejecución de un método. Puede ir seguido de un valor requerido por la definición del método, que se devuelve a quien lo llama.
short
La shortpalabra clave se utiliza para declarar un campo que puede contener un entero con signo de 16 bits en complemento a dos. [ 4 ] [ 5 ] Esta palabra clave también se utiliza para declarar que un método devuelve un valor del tipo primitivo short. [ 6 ] [ 7 ]
static
Se utiliza para declarar un campo, método o clase interna como un campo de clase. Las clases mantienen una copia de los campos de clase, independientemente de cuántas instancias existan de esa clase. staticTambién se utiliza para definir un método como un método de clase. Los métodos de clase están vinculados a la clase en lugar de a una instancia específica, y solo pueden operar sobre campos de clase. Las clases e interfaces declaradas como staticmiembros de otra clase o interfaz son, en términos de comportamiento, clases de nivel superior. [ 18 ]
super
La herencia se utiliza principalmente para lograr el enlace dinámico o el polimorfismo en tiempo de ejecución en Java. Permite acceder a los miembros de una clase heredada por la clase en la que aparece. Permite que una subclase acceda a los métodos sobrescritos y a los miembros ocultos de su superclase. La superpalabra clave también se utiliza para reenviar una llamada desde un constructor a un constructor de la superclase.
También se utiliza para especificar un límite inferior en un parámetro de tipo en Generics.
switch
La switchpalabra clave se utiliza junto con casey defaultpara crear una instrucción switch , que evalúa una variable, compara su valor con un específico case(incluidos patrones ) y ejecuta el bloque de instrucciones asociado con ese case. Si no casecoincide con el valor, se ejecuta el bloque opcional etiquetado por default, si está incluido. [ 8 ] [ 9 ] La palabra clave switch también se puede utilizar con la palabra clave no reservada yieldpara crear expresiones switch.
synchronized
Se utiliza en la declaración de un método o bloque de código para adquirir el bloqueo mutex para un objeto mientras el hilo actual ejecuta el código. [ 7 ] Para métodos estáticos, el objeto bloqueado es el de la clase Class. Garantiza que como máximo un hilo a la vez que opere en el mismo objeto ejecute ese código. El bloqueo mutex se libera automáticamente cuando la ejecución sale del código sincronizado. Los campos, las clases y las interfaces no se pueden declarar como sincronizados .
this
Se utiliza para representar una instancia de la clase en la que aparece. thisPuede usarse para acceder a los miembros de la clase y como referencia a la instancia actual. La thispalabra clave también se usa para reenviar una llamada de un constructor de una clase a otro constructor de la misma clase.
throw
Provoca que se lance la instancia de excepción declarada. Esto hace que la ejecución continúe con el primer manejador de excepciones que la contiene, declarado mediante la catchpalabra clave, para manejar un tipo de excepción compatible con la asignación. Si no se encuentra dicho manejador de excepciones en el método actual, este regresa y el proceso se repite en el método que lo llamó. Si no se encuentra ningún manejador de excepciones en ninguna llamada a método en la pila, la excepción se pasa al manejador de excepciones no capturadas del hilo.
throws
Se utiliza en las declaraciones de métodos para especificar qué excepciones no se manejan dentro del método, sino que se pasan al siguiente nivel superior del programa. Todas las excepciones verificadas no capturadas en un método (extiende Exceptionpero no RuntimeException) deben declararse utilizando la throwspalabra clave.
transient
Declara que un campo de instancia no forma parte de la forma serializada predeterminada de un objeto. Cuando un objeto se serializa, solo los valores de sus campos de instancia no transitorios se incluyen en la representación serial predeterminada. Cuando un objeto se deserializa, los campos transitorios se inicializan solo con su valor predeterminado. Si no se utiliza la forma predeterminada, por ejemplo, cuando se declara una tabla serialPersistentFieldstransient en la jerarquía de clases, se ignoran todas las palabras clave. [ 19 ] [ 20 ]
try
Define un bloque de instrucciones que maneja excepciones. Si se produce una excepción dentro del trybloque, un catchbloque opcional puede manejar los tipos de excepción declarados. También finallyse puede declarar un bloque opcional que se ejecutará cuando la ejecución salga del trybloque y catchlas cláusulas, independientemente de si se produce una excepción o no. Un trybloque debe tener al menos una catchcláusula o un finallybloque.
void
La voidpalabra clave se utiliza para declarar que un método no devuelve ningún valor. [ 6 ]
volatile
Se utiliza en las declaraciones de campo para garantizar la visibilidad de los cambios en las variables entre subprocesos. Cada lectura de una variable volátil se leerá desde la memoria principal, y no desde la caché de la CPU , y cada escritura en una variable volátil se escribirá en la memoria principal, y no solo en la caché de la CPU. [ 21 ] Por lo tanto, los métodos, las clases y las interfaces no pueden declararse como volátiles , ni tampoco las variables o parámetros locales.
while
La whilepalabra clave se utiliza para crear un bucle while , que evalúa una expresión booleana y ejecuta el bloque de instrucciones asociado al bucle si la expresión se evalúa como verdadera true; esto continúa hasta que la expresión se evalúa como falsa false. Esta palabra clave también se puede utilizar para crear un bucle do-while ; véase do. [ 10 ] [ 11 ]

No usado

Las siguientes palabras están reservadas como palabras clave, pero actualmente no tienen ningún uso ni propósito.

_
Añadido en Java 9, el guion bajo se ha convertido en una palabra clave y ya no se puede utilizar como nombre de variable. [ 22 ]
const
Aunque está reservada como palabra clave en Java, constno se usa y no tiene ninguna función. [ 2 ] [ 23 ] En otros lenguajes, constse usa normalmente para definir constantes. Para definir constantes en Java, consulte la finalpalabra clave.
goto
Aunque está reservada como palabra clave en Java, gotono se usa y no tiene ninguna función. [ 2 ] [ 23 ] En otros lenguajes, gotose usa típicamente como una instrucción de control unidireccional para saltar a una etiqueta en otra línea de código.
strictfp(añadido en J2SE 1.2 ) [ 3 ]
Aunque reservada como palabra clave en Java, strictfpestá obsoleta y ya no tiene ninguna función. [ 24 ] Anteriormente, esta palabra clave se utilizaba para restringir la precisión y el redondeo de los cálculos de punto flotante para garantizar la portabilidad. [ 7 ]

Palabras clave contextuales

Los siguientes identificadores son palabras clave contextuales y solo están restringidos en algunos contextos:

exports
Se utiliza en la declaración de un módulo para especificar qué paquetes están disponibles para otros módulos.
module
Declara un módulo (una colección de paquetes y recursos relacionados que pueden tratarse como una unidad), utilizado para encapsular y exponer únicamente la API pública de una biblioteca.
non-sealed
Se utiliza para declarar que una clase o interfaz que extiende una clase sellada puede ser extendida por clases desconocidas. [ 25 ]
open
Indica que todas las clases de un paquete son accesibles mediante reflexión por otros módulos.
opens
Se utiliza para abrir un paquete específico para que otros módulos puedan reflejarlo.
permits
La cláusula de permisos especifica las clases que tienen permiso para extender una clase sellada. [ 25 ]
provides
Se utiliza para declarar que un módulo proporciona una implementación de una interfaz de servicio.
record
Un tipo especial de clase que actúa como un portador transparente de datos inmutables, proporcionando automáticamente los métodos .equals(), .hashCode(), y .toString().
requires
Se utiliza en la declaración de un módulo para especificar que dicho módulo depende de otro módulo.
sealed
Una clase o interfaz sellada solo puede ser extendida o implementada por clases e interfaces autorizadas para hacerlo. [ 25 ]
to
Se utiliza con la opensdirectiva para especificar qué módulo tiene permiso para acceder al paquete de forma reflectiva.
transitive
Se utiliza con la requiresdirectiva para indicar que un módulo no solo requiere otro módulo, sino que también pone las dependencias de ese módulo a disposición de los módulos que dependen de él.
uses
Se utiliza en un módulo para declarar que el módulo está utilizando un servicio (es decir, consumirá un servicio proporcionado por otros módulos).
var
Un identificador especial que no se puede usar como nombre de tipo (desde Java 10). [ 26 ] Se usa para declarar una variable sin especificar explícitamente el tipo, confiando en que el compilador infiera el tipo a partir del inicializador.
when
Se utiliza como una verificación adicional para una casedeclaración. [ 27 ]
with
Se utiliza con la providesdirectiva para especificar qué implementación de un servicio proporciona el módulo.
yield
Se utiliza para establecer un valor para una expresión switch, cuando se utilizan grupos de instrucciones etiquetadas (por ejemplo, case L:). [ 28 ]

Palabras reservadas para valores literales

Las siguientes palabras se refieren a valores literales utilizados por el idioma.

true
Un valor literal booleano.
false
Un valor literal booleano.
null
Un valor literal de referencia.

Véase también

Referencias

  1. "Referencia de la API de Java de la plataforma Java, edición estándar" .
  2. 1 2 3 "Especificación del lenguaje Java - Sección 3.9: Palabras clave" . La especificación del lenguaje Java . Oracle . 21 de agosto de 2018. Recuperado el 25 de diciembre de 2018 .
  3. 1 2 3 "Palabras clave del lenguaje Java" . Los tutoriales de Java . Sun Microsystems, Inc. Recuperado el 24 de julio de 2017 .
  4. 1 2 3 4 5 6 "Tipos de datos primitivos" . Los tutoriales de Java . Sun Microsystems, Inc. 14 de febrero de 2008. Recuperado el 3 de diciembre de 2008 .
  5. 1 2 3 4 5 6 Flanagan 2005 , pág. 22.
  6. 1 2 3 4 5 6 7 "Devolver un valor desde un método" . Los tutoriales de Java . Sun Microsystems, Inc. 14 de febrero de 2008. Recuperado el 3 de diciembre de 2008 .
  7. 1 2 3 4 5 6 7 8 9 Flanagan 2005 , págs. 66–67.
  8. 1 2 3 "La instrucción switch" . Los tutoriales de Java . Sun Microsystems, Inc. 14 de febrero de 2008. Consultado el 18 de diciembre de 2014 .
  9. 1 2 3 Flanagan 2005 , págs. 46–48.
  10. 1 2 "Las sentencias while y do-while" . Los tutoriales de Java . Sun Microsystems, Inc. 14 de febrero de 2008. Consultado el 3 de diciembre de 2008 .
  11. 1 2 Flanagan 2005 , págs. 48–49.
  12. 1 2 "Las sentencias if-then e if-then-else" . Los tutoriales de Java . Sun Microsystems, Inc. 14 de febrero de 2008. Consultado el 3 de diciembre de 2008 .
  13. 1 2 Flanagan 2005 , págs. 44–46.
  14. 1 2 "La instrucción for" . Los tutoriales de Java . Sun Microsystems, Inc. 14 de febrero de 2008. Recuperado el 3 de diciembre de 2008 .
  15. Flanagan 2005 , págs. 50–54.
  16. "JEP 494: Declaraciones de importación de módulos (Segunda vista previa)" . openjdk.org .
  17. 1 2 3 "Controlar el acceso a los miembros de una clase" . Los tutoriales de Java . Sun Microsystems, Inc. 14 de febrero de 2008. Recuperado el 3 de diciembre de 2008 .
  18. "Clases anidadas (Tutoriales de Java™ > Aprendiendo el lenguaje Java > Clases y objetos)" .
  19. "Especificación de serialización de objetos Java versión 1.5.0" . Sun/Oracle. 2004. 1.5 Definición de campos serializables para una clase. Archivado del original el 12 de diciembre de 2019. Consultado el 16 de septiembre de 2010 .
  20. Grosso, William (21 de noviembre de 2001). "Java RMI: Serialización" . ONJava . O'Reilly Media. Declaración de serialPersistentFields . Recuperado el 16 de septiembre de 2010 .
  21. "Palabra clave volátil de Java" .
  22. "Tratamiento de los guiones bajos" . JEP 302: Restos de Lambda .
  23. 1 2 Flanagan 2005 , pág. 20.
  24. "JEP 306: Restaurar la semántica de punto flotante siempre estricta" .
  25. 1 2 3 "Clases selladas" . docs.oracle.com . Oracle Corporation . Consultado el 7 de agosto de 2021 .
  26. "Capítulo 3. Estructura léxica" . docs.oracle.com . Consultado el 25 de diciembre de 2018 .
  27. "Capítulo 14. Bloques, sentencias y patrones" .
  28. "Expresiones Switch" . docs.oracle.com . Oracle Corporation . Consultado el 27 de diciembre de 2020 .