Java-da ümumilikdə 51 açar sözü var.
- abstract
- assert (Java 1.4-dən sonra)
- boolean
- break
- byte
- case
- catch
- char
- class
- const (istifadə edilmir)
- continue
- default
- do
- double
- else
- enum (Java 1.5-dən sonra)
- extends
- final
- finally
- float
- for
- goto (istifadə edilmir)
- if
- implements
- import
- instanceof
- int
- interface
- long
- native
- new
- package
- private
- protected
- public
- return
- short
- static
- strictfp (Java 1.2-dən sonra)
- super
- switch
- synchronized
- this
- throw
- throws
- transient
- try
- void
- volatile
- while
- _ (alt xətt) (Java 9-dan sonra)
Bunlardan bəziləri sonradan əlavə olunub (assert, enum, strictfp və _ işarəsi), bəziləri isə öncədən açar sözü olaraq işarələnsə də (reserved - ayrılmış sözlərdir), onlar hazırda Java-da istifadə olunmur, çünki hazırda onların istifadəsini zəruri edəcək vəziyyətlər yoxdur, amma qarşıda istifadə oluna bilər (const və goto).
Bu siyahıda qeyd olunan 51 açar sözünü bir isim olaraq, yəni sinfin, dəyişənin, metodun adı olaraq istifadə edə bilmərik. Bunlar yalnız nəzərdə tutulduğu məqsədləri ilə açar sözü olaraq istifadə edilə bilər. (Hətta baxmayaraq ki, const və goto hazırda açar sözü olaraq istifadə edilmir, amma onlar nəyinsə adı olaraq da işlənə bilməzlər.)
- null, true və false sözləri isə sabitlərdir (literal), yəni dəyərə mənimsədilən sözlərdir. Onları da isim olaraq, yəni dəyişənin, metodun, sinfin adı olaraq istifadə edə bilmərik, onlar açar sözü kimi də istifadə edilmirlər, onlar yalnız sabitlərdir, dəyər ifadə edirlər, uyğun dəyişənlərə mənimsədilirlər.
- var - Java 10-da gələn yeni bir ayrılmış (reserved) sözdür. Yerli (local) dəyişən yaratmaq üçün istifadə olunur. Var - Python, JavaScript kimi dillərdə çox istifadə olunur. Var - “variable” (dəyişən) sözünün qısaldılmışıdır. Var ilə yerli dəyişən əmələ gətirərkən, tip qeyd etməyimizə gərək yoxdur, Java burada tip məlumatını kontekstdən əldə edir. Buna “tipli nəticə” (type inference) deyilir. Var - Java-da ayrılmış söz olsa da, açar sözü deyil. Buna görə də, Java 10-dan öncə “var” sözünü dəyişən, metod və paket adı olaraq istifadə etmək olardı. Hansı ki, bu sözün Java-ya gəlməsindən (Java 10-dan) sonra kodda bu sözü dəyişməyə ehtiyac yoxdur. Amma “var” sinif (class) yaxud interfeys (interface) adı olaraq istifadə olunubsa, bunlar Java 10-dan sonra dəyişdirilməlidir. (Əslində isə istifadəsi ümumiyyətlə yanlışdır, çünki sinif və interfeys adları böyük hərflə başlamalıdır.)