Java Cheat Sheet: ściąga z Javy
Ostatnia aktualizacja
Hello World i struktura programu
Każdy program w Javie uruchamia się z metody main wewnątrz klasy.
| Element | Kod |
|---|---|
| Deklaracja klasy | public class Main { ... } |
| Punkt wejścia | public static void main(String[] args) { ... } |
| Wypisanie linii | System.out.println("Hello, World!"); |
| Wypisanie bez nowej linii | System.out.print("text"); |
| Odczyt danych wejściowych | Scanner sc = new Scanner(System.in); |
| Import klasy | import java.util.ArrayList; |
| Komentarze | // line i /* block */ |
Typy danych
Typy proste piszemy małą literą; ich klasy opakowujące wielką.
| Typ | Opis |
|---|---|
int | 32-bitowa liczba całkowita ze znakiem |
long | 64-bitowa liczba całkowita ze znakiem |
double / float | Liczby zmiennoprzecinkowe |
boolean | true lub false |
char | Pojedynczy 16-bitowy znak Unicode |
byte / short | 8-bitowe / 16-bitowe liczby całkowite |
String | Niemutowalny tekst (klasa, nie typ prosty) |
Integer, Double, Boolean | Klasy opakowujące typy proste |
var | Wnioskowany typ lokalny (Java 10+) |
Zmienne
| Operacja | Składnia |
|---|---|
| Deklaracja i inicjalizacja | int x = 5; |
| Wnioskowanie typu (lokalne) | var name = "Ada"; |
| Stała | final double PI = 3.14159; |
| Łączenie łańcuchów | String s = "Hi " + name; |
| Zamiana łańcucha na int | int n = Integer.parseInt("42"); |
| Zamiana int na łańcuch | String s = String.valueOf(42); |
| Łańcuch z formatowaniem | String.format("%d items", n) |
Operatory
Operatory arytmetyczne, porównania, logiczne i przypisania.
| Operator | Znaczenie |
|---|---|
+ - * / % | Dodawanie, odejmowanie, mnożenie, dzielenie, modulo |
++ -- | Inkrementacja / dekrementacja |
== != | Równe / różne (dla obiektów porównuje referencje) |
> < >= <= | Porównania większy / mniejszy |
&& || ! | Logiczne AND, OR, NOT (skrócone obliczanie) |
& | ^ ~ | Bitowe AND, OR, XOR, NOT |
<< >> >>> | Przesunięcie w lewo, w prawo ze znakiem, w prawo bez znaku |
+= -= *= /= | Przypisanie złożone |
? : | Operator warunkowy: x > 0 ? "pos" : "neg" |
instanceof | Sprawdzenie typu: if (o instanceof String s) |
Sterowanie przepływem
| Instrukcja | Składnia |
|---|---|
| If / else | if (x > 0) { ... } else { ... } |
| Instrukcja switch | switch (n) { case 1: ...; break; default: ...; } |
| Wyrażenie switch | var s = switch (n) { case 1 -> "one"; default -> "other"; }; |
| Pętla while | while (i < n) { ... } |
| Pętla do-while | do { ... } while (i < n); |
| Pętla for | for (int i = 0; i < n; i++) { ... } |
| Rozszerzona pętla for (for-each) | for (String item : list) { ... } |
| Break / continue | break; wychodzi z pętli, continue; przechodzi do następnej iteracji |
Metody klasy String
String jest niemutowalny: każda metoda zwraca nowy łańcuch. Używaj StringBuilder, gdy łączysz tekst w pętli.
| Metoda | Co robi |
|---|---|
s.length() | Liczba znaków |
s.charAt(i) | Znak o indeksie i |
s.substring(a, b) | Fragment od a (włącznie) do b (bez niego) |
s.indexOf("x") | Pierwszy indeks podłańcucha albo -1 |
s.contains("x") | true, jeśli podłańcuch występuje |
s.replace("a", "b") | Zamienia wszystkie wystąpienia |
s.split(",") | Dzieli na String[] |
s.trim() / s.strip() | Usuwa białe znaki z początku i końca |
s.toUpperCase() / toLowerCase() | Zmiana wielkości liter |
s.equals(t) / equalsIgnoreCase(t) | Porównanie wartości (nie ==) |
s.startsWith("x") / endsWith("x") | Test prefiksu / sufiksu |
String.join(",", list) | Łączy elementy separatorem |
Math i popularne narzędzia
Statyczne metody pomocnicze z java.lang.Math i klas opakowujących liczby.
| Wywołanie | Wynik |
|---|---|
Math.max(a, b) / Math.min(a, b) | Większa / mniejsza z dwóch wartości |
Math.abs(x) | Wartość bezwzględna |
Math.pow(x, y) | x do potęgi y (zwraca double) |
Math.sqrt(x) | Pierwiastek kwadratowy |
Math.round(x) / floor / ceil | Zaokrąglenie do najbliższej / w dół / w górę |
Math.random() | Losowy double z przedziału [0.0, 1.0) |
Integer.parseInt("42") | Zamienia łańcuch na int |
Integer.MAX_VALUE / MIN_VALUE | Największy / najmniejszy int |
Arrays.sort(arr) | Sortuje tablicę w miejscu |
Arrays.toString(arr) | Czytelna zawartość tablicy |
Metody
| Operacja | Składnia |
|---|---|
| Definicja metody | int add(int a, int b) { return a + b; } |
| Bez wartości zwracanej | void greet() { ... } |
| Metoda statyczna | static int square(int x) { return x * x; } |
| Metoda publiczna | public String getName() { return name; } |
| Zmienna liczba argumentów | int sum(int... nums) { ... } |
| Wywołanie metody | int r = add(2, 3); |
| Wywołanie metody statycznej | Math.max(a, b); |
| Przeciążanie metod | int max(int a, int b) i double max(double a, double b) |
Klasy i OOP
| Operacja | Składnia |
|---|---|
| Definicja klasy | public class Dog { ... } |
| Pole | private String name; |
| Konstruktor | public Dog(String name) { this.name = name; } |
| Utworzenie obiektu | Dog d = new Dog("Rex"); |
| Getter / setter | public String getName() { return name; } |
| Dziedziczenie | class Puppy extends Dog { ... } |
| Interfejs | interface Runnable { void run(); } |
| Implementacja interfejsu | class Task implements Runnable { ... } |
| Nadpisanie metody | @Override public void speak() { ... } |
Rekordy, typy wyliczeniowe i nowoczesna Java
Zwięzła, nowoczesna składnia (Java 14+) dla nośników danych i stałych zbiorów wartości.
| Mechanizm | Składnia |
|---|---|
| Rekord (niemutowalne dane) | record Point(int x, int y) {} |
| Użycie rekordu | var p = new Point(1, 2); p.x(); |
| Enum | enum Day { MON, TUE, WED } |
| Enum z wartościami | enum Coin { PENNY(1), DIME(10); ... } |
| Blok tekstowy | String s = """\n multi\n line\n """; |
Dopasowanie wzorca instanceof | if (o instanceof String s) { s.length(); } |
| Wzorce w switch (Java 21) | case Integer i -> ...; case String s -> ...; |
| Klasa zapieczętowana | sealed interface Shape permits Circle, Square {} |
Kolekcje
Kolekcje generyczne z java.util.
| Typ | Zastosowanie i przykład |
|---|---|
ArrayList<T> | Tablica dynamiczna: list.add(1); list.get(0); list.size(); |
HashMap<K, V> | Klucz-wartość: map.put("a", 1); map.get("a"); |
HashSet<T> | Unikalne wartości: set.add(5); set.contains(5); |
LinkedList<T> | Lista dwukierunkowa, dobra jako kolejka/deque |
ArrayDeque<T> | Stos/kolejka: dq.push(x); dq.pop(); |
| Tablica | int[] nums = {1, 2, 3}; |
| Iteracja po liście | for (T x : list) { ... } |
| Iteracja po mapie | for (var e : map.entrySet()) { e.getKey(); e.getValue(); } |
Strumienie i lambdy
Funkcyjne potoki operacji na kolekcjach (Java 8+).
| Operacja | Składnia |
|---|---|
| Wyrażenie lambda | x -> x * 2 |
| Utworzenie strumienia | list.stream() |
| Filtrowanie | .filter(n -> n > 0) |
| Mapowanie / przekształcenie | .map(n -> n * 2) |
| Sortowanie | .sorted() lub .sorted(Comparator.reverseOrder()) |
| Redukcja / suma | .reduce(0, Integer::sum) |
| Zliczanie / dopasowanie | .count(), .anyMatch(n -> n > 5) |
| Zebranie do listy | .collect(Collectors.toList()) |
| Dla każdego elementu | .forEach(System.out::println) |
Popularne wzorce (try/catch, typy generyczne)
| Wzorzec | Składnia |
|---|---|
| Try / catch | try { ... } catch (Exception e) { ... } |
| Przechwycenie konkretnego wyjątku | catch (IOException e) { ... } |
| Finally | finally { ... } wykonuje się zawsze |
| Try-with-resources | try (Scanner sc = new Scanner(...)) { ... } |
| Rzucenie wyjątku | throw new IllegalArgumentException("bad"); |
| Klasa generyczna | class Box<T> { T value; } |
| Metoda generyczna | <T> T first(List<T> list) { ... } |
| Typ ograniczony | <T extends Number> |
Najczęściej używana składnia Javy, kolekcje i operacje na strumieniach na jednej stronie. Ten Java cheat sheet to szybka ściąga do pisania w Javie: typy danych, sterowanie przepływem, klasy, kolekcje ArrayList/HashMap, Streams API oraz wzorce wyjątków i typów generycznych, których używasz na co dzień.
Wszystko tutaj to standardowa Java (Java 8 i nowsze), która kompiluje się przez javac. Skopiuj to, czego potrzebujesz, albo uruchom dowolny fragment w edytorze online Java, bez instalowania JDK. Dopiero zaczynasz? Darmowy interaktywny kurs Javy w Coddy buduje te same pojęcia krok po kroku.
Java cheat sheet: najczęstsze pytania
Czy ten Java cheat sheet jest darmowy?
Tak. Ta ściąga z Javy jest całkowicie darmowa i nie wymaga rejestracji. Dodaj ją do zakładek i wracaj, gdy potrzebujesz sprawdzić składnię, kolekcję albo operację na strumieniu.
Czym różni się == od .equals() w Javie?
== porównuje referencje, czyli sprawdza, czy dwie zmienne wskazują dokładnie ten sam obiekt, a .equals() porównuje zawartość. Dwa różne obiekty String z tym samym tekstem są równe według .equals(), ale mogą nie być równe według ==. Do porównywania wartości łańcuchów i innych obiektów zawsze używaj .equals(); == stosuj tylko do typów prostych (int, boolean itd.) albo do sprawdzania null.Do czego służą strumienie w Javie?
filter, map, sorted, reduce, collect, zamiast ręcznych pętli. Zaczynasz od list.stream(), łączysz operacje pośrednie i kończysz operacją terminalną, np. collect(Collectors.toList()) albo forEach. Dzięki temu kod przekształcający dane jest zwięzły i wyrazisty.Czy mogę ćwiczyć Javę online?
Tak. Otwórz edytor online Java, aby skompilować i uruchomić dowolny fragment z tej ściągi w przeglądarce, bez instalowania JDK. Gdy chcesz uczyć się bardziej systematycznie, darmowy interaktywny kurs Javy w Coddy prowadzi krok po kroku od zmiennych i pętli do klas, kolekcji i strumieni.
Czy ta ściąga nadaje się dla początkujących?
Tak. Jest ułożona od najczęstszych elementów (typy, sterowanie przepływem, metody) do bardziej zaawansowanych (strumienie, typy generyczne, wyjątki), więc górnych sekcji możesz używać od pierwszego dnia, a resztę poznawać z czasem.
Jak zamienić String na int w Javie?
Integer.parseInt("42"), aby dostać prosty int, albo Integer.valueOf("42"), aby dostać obiekt Integer. Obie metody rzucają NumberFormatException, jeśli łańcuch nie jest poprawną liczbą, więc otocz je blokiem try / catch, gdy dane wejściowe nie są zaufane. W drugą stronę użyj String.valueOf(n) albo Integer.toString(n).Czym różni się ArrayList od tablicy w Javie?
int[] a = new int[5]) ma stałą długość ustaloną przy tworzeniu i może bezpośrednio przechowywać typy proste. ArrayList<T> rośnie i maleje dynamicznie dzięki add() i remove(), ale przechowuje tylko obiekty, więc typy proste są automatycznie opakowywane (ArrayList<Integer>). Używaj tablicy, gdy rozmiar jest znany i stały, a ArrayList, gdy kolekcja zmienia rozmiar.