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?
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?
Czy ta ściąga nadaje się dla początkujących?
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.