Lista över Java-sökord

Ett utdrag av Java-kod med nyckelord markerade i blått och fetstil

I programmeringsspråket Java är ett nyckelord vilket som helst av 67 reserverade ord som har en fördefinierad betydelse i språket. På grund av detta kan programmerare inte använda nyckelord i vissa sammanhang, till exempel namn på variabler , metoder , klasser eller som någon annan identifierare . Av dessa 67 nyckelord är 16 av dem endast kontextuellt reserverade, och kan ibland användas som en identifierare, till skillnad från vanliga reserverade ord. På grund av deras speciella funktioner i språket använder de flesta integrerade utvecklingsmiljöer för Java syntaxmarkering för att visa nyckelord i en annan färg för enkel identifiering.

Lista över Java-sökord

_
Tillagt i Java 9 har understrecket blivit ett nyckelord och kan inte längre användas som ett variabelnamn.
abstrakt
En metod utan definition måste deklareras som abstrakt och klassen som innehåller den måste deklareras som abstrakt. Abstrakta klasser kan inte instansieras. Abstrakta metoder måste implementeras i underklasserna. Det abstrakta nyckelordet kan inte användas med variabler eller konstruktorer. Observera att en abstrakt klass inte alls krävs för att ha en abstrakt metod.
assert (tillagt i J2SE 1.4 )
Assert beskriver ett predikat (ett sant–falskt påstående) placerat i ett Java-program för att indikera att utvecklaren tror att predikatet alltid är sant på den platsen. Om ett påstående utvärderas till falskt vid körning, uppstår ett påståendefel, vilket vanligtvis gör att körningen avbryts. Påståenden är inaktiverade vid körning som standard, men kan aktiveras via ett kommandoradsalternativ eller programmatiskt genom en metod på klassladdaren.
boolean
Definierar en boolesk variabel endast för värdena "true" eller "false". Som standard är värdet för boolesk primitiv typ falskt. Detta nyckelord används också för att deklarera att en metod returnerar ett värde av den primitiva typen boolean .
break
Används för att avsluta exekveringen i den aktuella loopkroppen.
Används för att bryta ut ur ett kopplingsblock .
byte
Nyckelordet byte används för att deklarera ett fält som kan innehålla ett 8-bitars signerat två-komplement heltal. Detta nyckelord används också för att deklarera att en metod returnerar ett värde av den primitiva typen byte .
case
En sats i switchblocket kan märkas med en eller flera case eller standardetiketter . Switch - satsen utvärderar sitt uttryck och exekverar sedan alla satser som följer den matchande case -etiketten; se omkopplare .
catch
Används i kombination med ett försöksblock och ett valfritt slutligen block. Satserna i catch -blocket anger vad som ska göras om en specifik typ av undantag kastas av try- blocket.
char
Definierar en teckenvariabel som kan innehålla vilket tecken som helst i java-källfilens teckenuppsättning.
klass
En typ som definierar implementeringen av en viss typ av objekt. En klassdefinition definierar instans- och klassfält , metoder och inre klasser samt specificerar gränssnitten som klassen implementerar och klassens omedelbara superklass . Om superklassen inte är explicit specificerad är superklassen implicit Object . Klassnyckelordet kan också användas i formen Class .class för att få ett Class-objekt utan att behöva en instans av den klassen. Till exempel String.class användas istället för att göra nya String().getClass() .
const
Oanvänd men reserverad.
fortsätt
Används för att återuppta programkörningen i slutet av den aktuella loopkroppen. Om den följs av en etikett, fortsätt återupptar exekveringen i slutet av den omslutande märkta loopkroppen.
default
Standardnyckelordet kan valfritt användas i en switch-sats för att märka ett block med satser som ska köras om inget fall matchar det angivna värdet; se omkopplare . Alternativt standardnyckelordet också användas för att deklarera standardvärden i en Java-kommentar . Från Java 8 och framåt standardnyckelordet användas för att tillåta ett gränssnitt att tillhandahålla en implementering av en metod.
do
Nyckelordet do används tillsammans med while för att skapa en do-while loop , som exekverar ett block med satser associerade med slingan och sedan testar ett booleskt uttryck associerat med while . Om uttrycket evalueras till true exekveras blocket igen; detta fortsätter tills uttrycket evalueras till falskt .
double
Det dubbla nyckelordet används för att deklarera en variabel som kan innehålla ett 64-bitars dubbel precision IEEE 754 flyttal . Detta nyckelord används också för att deklarera att en metod returnerar ett värde av den primitiva typen dubbel .
else
Nyckelordet else används tillsammans med if för att skapa en if-else-sats , som testar ett booleskt uttryck ; om uttrycket evalueras till true , utvärderas blocket av satser som är associerade med if ; om det utvärderas till false , utvärderas blocket av satser som är associerade med else .
enum (tillagt i J2SE 5.0 )
Ett Java-nyckelord som används för att deklarera en uppräknad typ . Uppräkningar utökar basklassen Enum .
extends
Används i en klassdeklaration för att specificera superklassen; används i en gränssnittsdeklaration för att specificera ett eller flera supergränssnitt. Klass X utökar klass Y för att lägga till funktionalitet, antingen genom att lägga till fält eller metoder till klass Y, eller genom att åsidosätta metoder för klass Y. Ett gränssnitt Z utökar ett eller flera gränssnitt genom att lägga till metoder. Klass X sägs vara en underklass av klass Y; Gränssnitt Z sägs vara ett undergränssnitt till de gränssnitt det utökar.
Används även för att ange en övre gräns för en typparameter i Generics.
final
Definiera en enhet en gång som inte kan ändras eller härledas från senare. Mer specifikt: en slutlig klass kan inte underklassas, en slutlig metod kan inte åsidosättas och en slutlig variabel kan högst förekomma en gång som ett vänsteruttryck på ett kört kommando. Alla metoder i en sista klass är implicit slutgiltiga .
finally
Används för att definiera ett block med satser för ett block som tidigare definierats av nyckelordet try . Finally- blocket exekveras efter att exekveringen lämnar try- blocket och eventuella associerade catch- satser oavsett om ett undantag kastades eller fångades, eller exekverings vänster-metoden i mitten av try eller catch - blocken med nyckelordet return .
float
Nyckelordet float används för att deklarera en variabel som kan innehålla ett 32-bitars enda precision IEEE 754 flyttal. Detta nyckelord används också för att deklarera att en metod returnerar ett värde av den primitiva typen float .
for
Nyckelordet for används för att skapa en for-loop , som anger en variabelinitiering, ett booleskt uttryck och en inkrementering. Variabelinitieringen utförs först och sedan utvärderas det booleska uttrycket. Om uttrycket evalueras till true exekveras blocket av satser som är associerade med slingan, och sedan utförs ökningen. Det booleska uttrycket utvärderas sedan igen; detta fortsätter tills uttrycket evalueras till falskt .
Från och med J2SE 5.0 kan nyckelordet for också användas för att skapa en så kallad " enhanced for loop ", som specificerar en array eller Iterable -objekt; varje iteration av loopen exekverar det associerade blocket av satser med ett annat element i arrayen eller Iterable .
goto
Oanvänd men reserverad.
if
Nyckelordet if används för att skapa en if-sats , som testar ett booleskt uttryck ; om uttrycket evalueras till true , exekveras blocket av satser som är associerade med if-satsen. Detta nyckelord kan också användas för att skapa en if-else-sats ; se annat .
implements
Ingår i en klassdeklaration för att specificera ett eller flera gränssnitt som implementeras av den aktuella klassen. En klass ärver de typer och abstrakta metoder som deklareras av gränssnitten.
import
Används i början av en källfil för att ange klasser eller hela Java-paket som ska refereras till senare utan att inkludera deras paketnamn i referensen. Sedan J2SE 5.0 importsatser importera statiska medlemmar av en klass.
instanceof
En binär operator som tar en objektreferens som sin första operand och en klass eller gränssnitt som sin andra operand och ger ett booleskt resultat. Operatörsinstansen utvärderas till true om och endast om objektets körtidstyp är tilldelningskompatibel med klassen eller gränssnittet .
int
Nyckelordet int används för att deklarera en variabel som kan innehålla ett 32-bitars två-teckens komplementheltal. Detta nyckelord används också för att deklarera att en metod returnerar ett värde av den primitiva typen int .
gränssnitt
Används för att deklarera en speciell typ av klass som bara innehåller abstrakta eller standardmetoder, konstanta ( statiska slutliga ) fält och statiska gränssnitt. Det kan senare implementeras av klasser som deklarerar gränssnittet med nyckelordet implements . Eftersom multipelarv inte är tillåtet i Java används gränssnitt för att kringgå det. Ett gränssnitt kan definieras inom ett annat gränssnitt.
long
Nyckelordet long används för att deklarera en variabel som kan innehålla ett 64-bitars förtecknat tvås komplementheltal. Detta nyckelord används också för att deklarera att en metod returnerar ett värde av den primitiva typen long .
native
Används i metoddeklarationer för att specificera att metoden inte är implementerad i samma Java-källfil, utan snarare på ett annat språk.
new
Används för att skapa en instans av ett klass- eller arrayobjekt. Att använda nyckelord för detta ändamål är inte helt nödvändigt (som exemplifieras av Scala ), även om det tjänar två syften: det möjliggör existensen av olika namnutrymmen för metoder och klassnamn, det definierar statiskt och lokalt att ett nytt objekt verkligen skapas, och vilken körtidstyp det är (förmodligen införa beroende i koden).
paket
Java-paket är en grupp av liknande klasser och gränssnitt. Paket deklareras med nyckelordet paket .
privat
Det privata nyckelordet används i deklarationen av en metod, ett fält eller en inre klass; privata medlemmar kan endast nås av andra medlemmar i sin egen klass.
protected
Det skyddade nyckelordet används i deklarationen av en metod, ett fält eller en inre klass; skyddade medlemmar kan endast nås av medlemmar i sin egen klass, den klassens underklasser eller klasser från samma paket .
public
Det offentliga nyckelordet används i deklarationen av en klass, metod eller fält; publika klasser, metoder och fält kan nås av medlemmarna i vilken klass som helst.
return
Används för att avsluta exekveringen av en metod. Det kan följas av ett värde som krävs av metoddefinitionen som returneras till den som ringer
kort .
Det korta nyckelordet används för att deklarera ett fält som kan innehålla ett 16-bitars signerat tvås komplementheltal. Detta nyckelord används också för att deklarera att en metod returnerar ett värde av den primitiva typen short .
static
Används för att deklarera ett fält, en metod eller en inre klass som ett klassfält. Klasser upprätthåller en kopia av klassfält oavsett hur många instanser som finns av den klassen. static används också för att definiera en metod som en klassmetod. Klassmetoder är bundna till klassen istället för till en specifik instans och kan bara fungera på klassfält. Klasser och gränssnitt som deklareras som statiska medlemmar av en annan klass eller gränssnitt är faktiskt klasser på toppnivå och är inte inre klasser.
super
Arv används i princip för att uppnå dynamisk bindning eller körtidspolymorfism i java. Används för att komma åt medlemmar i en klass som ärvts av klassen där den förekommer. Tillåter en underklass att komma åt åsidosatta metoder och dolda medlemmar av dess superklass. Nyckelordet super används också för att vidarebefordra ett samtal från en konstruktör till en konstruktör i superklassen.
Används även för att ange en nedre gräns för en typparameter i Generics.
switch
Nyckelordet switch används tillsammans med case och default för att skapa en switch-sats , som utvärderar en variabel, matchar dess värde med ett specifikt fall och exekverar blocket av satser som är associerade med det fallet . Om inget fall matchar värdet, exekveras det valfria blocket märkt som standard , om det ingår.
synchronized
Används i deklarationen av en metod eller kodblock för att förvärva mutex- låset för ett objekt medan den aktuella tråden exekverar koden. För statiska metoder är det låsta objektet klassens klass . Garanterar att högst en tråd åt gången som arbetar på samma objekt exekverar den koden. Mutex-låset släpps automatiskt när körningen avslutar den synkroniserade koden. Fält, klasser och gränssnitt kan inte deklareras som synkroniserade .
detta
Används för att representera en instans av klassen där den förekommer. detta kan användas för att komma åt klassmedlemmar och som en referens till den aktuella instansen. Nyckelordet this används också för att vidarebefordra ett samtal från en konstruktör i en klass till en annan konstruktör i samma klass.
throw
Gör att den deklarerade undantagsinstansen kastas. Detta gör att exekveringen fortsätter med den första omslutande undantagshanteraren som deklareras av catch för att hantera en tilldelningskompatibel undantagstyp. Om ingen sådan undantagshanterare hittas i den aktuella metoden, returnerar metoden och processen upprepas i anropsmetoden. Om ingen undantagshanterare hittas i något metodanrop på stacken, skickas undantaget till trådens ouppfångade undantagshanterare.
throws
Används i metoddeklarationer för att specificera vilka undantag som inte hanteras inom metoden utan skickas till nästa högre nivå i programmet. Alla oupptäckta undantag i en metod som inte är instanser av RuntimeException måste deklareras med nyckelordet throws .
transient
Deklarerar att ett instansfält inte är en del av den serialiserade standardformen för ett objekt. När ett objekt serialiseras inkluderas endast värdena för dess icke-transienta instansfält i standardserierepresentationen. När ett objekt deserialiseras, initieras övergående fält endast till deras standardvärde. Om standardformuläret inte används, t.ex. när en serialPersistentFields- tabell deklareras i klasshierarkin, ignoreras alla tillfälliga nyckelord.
try
Definierar ett block av satser som har undantagshantering. Om ett undantag kastas in i försöksblocket , kan ett valfritt fångstblock hantera deklarerade undantagstyper. Dessutom kan ett valfritt finally -block deklareras som kommer att exekveras när exekveringen lämnar try- blocket och catch- satserna, oavsett om ett undantag slängs eller inte. Ett försöksblock måste ha minst en catch- sats eller ett finally- block.
void
Nyckelordet void används för att deklarera att en metod inte returnerar något värde.
volatile
Används i fältdeklarationer för att garantera synlighet av ändringar av variabler över trådar. Varje läsning av en flyktig variabel kommer att läsas från huvudminnet, och inte från CPU-cachen, och att varje skrivning till en flyktig variabel kommer att skrivas till huvudminnet, och inte bara till CPU-cachen. Metoder, klasser och gränssnitt kan således inte deklareras flyktiga , inte heller lokala variabler eller parametrar.
while
Nyckelordet while används för att skapa en while-loop , som testar ett booleskt uttryck och exekverar blocket av satser som är associerade med slingan om uttrycket evalueras till sant ; detta fortsätter tills uttrycket evalueras till falskt . Detta nyckelord kan också användas för att skapa en do-while loop ; se gör .

Reserverade identifierare

Följande identifierare är kontextuella nyckelord och är endast begränsade i vissa sammanhang:

export

modul

non-sealed
Används för att deklarera att en klass eller gränssnitt som utökar en förseglad klass kan utökas med okända klasser.
öppna
öppnar
tillstånd
Tillståndsklausulen anger vilka klasser som är tillåtna att utöka en förseglad klass.
ger
rekord

kräver

förseglad
En förseglad klass eller gränssnitt kan endast utökas eller implementeras av klasser och gränssnitt som är tillåtna att göra det.
till
transitive
uses
var
En speciell identifierare som inte kan användas som ett typnamn (sedan Java 10).
with
yield
Används för att ställa in ett värde för ett växlingsuttryck när märkta satsgrupper används (till exempel case L: ) .

Reserverade ord för bokstavliga värden

sant
Ett booleskt bokstavligt värde.
false
Ett booleskt bokstavligt värde.
null
Ett bokstavligt referensvärde.

Oanvänd

const
Även om det är reserverat som ett nyckelord i Java, används inte const och har ingen funktion. För att definiera konstanter i Java, se det sista nyckelordet.
goto
Även om det är reserverat som ett nyckelord i Java, används inte goto och har ingen funktion.
strictfp (tillagt i J2SE 1.2 )
Även om det är reserverat som ett nyckelord i Java, är strictfp föråldrat och har inte längre någon funktion. Tidigare användes detta nyckelord för att begränsa precisionen och avrundningen av flyttalsberäkningar för att säkerställa portabilitet.

Se även

externa länkar