Od Java 14 konstrukcja switch może być również używana jako wyrażenie zwracające wartość. W kolejnych wydaniach wprowadzono ponadto m.in. bloki tekstowe, lokalne wnioskowanie typów przez var, nienazwane zmienne i wzorce oraz uproszczony sposób definiowania prostych programów.
Obsługa wyjątków
Java wykorzystuje wyjątki do obsługi sytuacji powodujących przerwanie zwykłego toku wykonywania programu. Każdy wyjątek jest reprezentowany przez obiekt klasy java.lang.Throwable lub jednej z jej podklas, w tym Exception i Error.
Język rozróżnia wyjątki kontrolowane (checked exceptions) oraz niekontrolowane. W przypadku wyjątków kontrolowanych kompilator wymaga ich obsłużenia albo zadeklarowania możliwości ich zgłoszenia w sygnaturze metody. Wymóg ten nie dotyczy klas dziedziczących po RuntimeException i Error.
Współbieżność
Mechanizmy programowania współbieżnego należą do podstawowych elementów platformy Java. Język definiuje m.in. synchronizację za pomocą słowa kluczowego synchronized, natomiast biblioteka standardowa zawiera pakiet java.util.concurrent oraz powiązane podpakiety, obejmujące m.in. pule wątków, kolejki współbieżne, blokady, semafory oraz typy atomowe.