Java

Obiektowy język programowania kompilowany do kodu bajtowego uruchamianego na maszynie wirtualnej JVM. Działa na wielu platformach bez zmian w kodzie.

Java to obiektowy język programowania ogólnego przeznaczenia, który kompiluje się nie do natywnego kodu maszynowego, lecz do bytecode’u uruchamianego na maszynie wirtualnej Java (JVM). Dzięki temu ten sam skompilowany plik działa na Windowsie, Linuksie i macOS bez przerabiania — stąd słynne hasło write once, run anywhere. Java jest statycznie typowana, ma garbage collector (sam zwalnia pamięć) i od lat siedzi w czołówce najpopularniejszych języków, zwłaszcza w bankach, korporacjach i systemach back-endowych.

Jak to działa

Piszesz kod w plikach .java, kompilator javac zamienia go na .class z bytecode’em, a JVM wykonuje go w locie — częściowo interpretując, częściowo kompilując gorące fragmenty do kodu natywnego (kompilator JIT). Ta warstwa pośrednia kosztuje trochę na starcie, ale daje przenośność i sprytne optymalizacje w czasie działania.

Java rozwija się w cyklu półrocznym, a co kilka lat pojawia się wydanie LTS (long-term support) z dłuższym wsparciem — aktualne LTS-y to Java 17, 21 oraz 25 (wrzesień 2025). Do projektów produkcyjnych wybierasz właśnie LTS, a nie najnowszy numerek z brzegu.

Przykład z praktyki

Większość realnych projektów nie odpala się gołym javac. Używasz narzędzia do budowania, najczęściej Maven albo Gradle, plus frameworka Spring Boot do serwisów webowych. Typowy start nowej aplikacji wygląda tak, że generujesz szkielet na start.spring.io, a potem odpalasz:

  • mvn clean package — kompiluje i pakuje wszystko do jednego pliku .jar,
  • java -jar target/app.jar — uruchamia gotowy serwis.

I już masz działające REST API na localhost:8080, bez ręcznego stawiania serwera aplikacyjnego.

Częste mity i pułapki

Java to nie JavaScript. To dwa różne języki — łączy je tylko marketingowa nazwa z lat 90. Mylenie ich na rozmowie rekrutacyjnej boli.

Drugi mit: „Java jest wolna”. Dziś JIT i nowoczesny garbage collector sprawiają, że to nieprawda — wolniejszy bywa głównie zimny start. Uważaj za to na NullPointerException (klasyczny błąd nowicjusza) i na to, żeby wersja JDK użyta do kompilacji pasowała do tej w środowisku produkcyjnym, bo inaczej dostaniesz UnsupportedClassVersionError.

Pojęcia powiązane

JVM, JDK i JRE, bytecode, garbage collector, Spring Boot, Maven, Gradle, Kotlin (inny język na tej samej JVM) oraz programowanie obiektowe (OOP).