Menu
Coddy logo textTech

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.

ElementKod
Deklaracja klasypublic class Main { ... }
Punkt wejściapublic static void main(String[] args) { ... }
Wypisanie liniiSystem.out.println("Hello, World!");
Wypisanie bez nowej liniiSystem.out.print("text");
Odczyt danych wejściowychScanner sc = new Scanner(System.in);
Import klasyimport java.util.ArrayList;
Komentarze// line i /* block */

Typy danych

Typy proste piszemy małą literą; ich klasy opakowujące wielką.

TypOpis
int32-bitowa liczba całkowita ze znakiem
long64-bitowa liczba całkowita ze znakiem
double / floatLiczby zmiennoprzecinkowe
booleantrue lub false
charPojedynczy 16-bitowy znak Unicode
byte / short8-bitowe / 16-bitowe liczby całkowite
StringNiemutowalny tekst (klasa, nie typ prosty)
Integer, Double, BooleanKlasy opakowujące typy proste
varWnioskowany typ lokalny (Java 10+)

Zmienne

OperacjaSkładnia
Deklaracja i inicjalizacjaint x = 5;
Wnioskowanie typu (lokalne)var name = "Ada";
Stałafinal double PI = 3.14159;
Łączenie łańcuchówString s = "Hi " + name;
Zamiana łańcucha na intint n = Integer.parseInt("42");
Zamiana int na łańcuchString s = String.valueOf(42);
Łańcuch z formatowaniemString.format("%d items", n)

Operatory

Operatory arytmetyczne, porównania, logiczne i przypisania.

OperatorZnaczenie
+ - * / %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"
instanceofSprawdzenie typu: if (o instanceof String s)

Sterowanie przepływem

InstrukcjaSkładnia
If / elseif (x > 0) { ... } else { ... }
Instrukcja switchswitch (n) { case 1: ...; break; default: ...; }
Wyrażenie switchvar s = switch (n) { case 1 -> "one"; default -> "other"; };
Pętla whilewhile (i < n) { ... }
Pętla do-whiledo { ... } while (i < n);
Pętla forfor (int i = 0; i < n; i++) { ... }
Rozszerzona pętla for (for-each)for (String item : list) { ... }
Break / continuebreak; 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.

MetodaCo 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łanieWynik
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 / ceilZaokrą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_VALUENajwiększy / najmniejszy int
Arrays.sort(arr)Sortuje tablicę w miejscu
Arrays.toString(arr)Czytelna zawartość tablicy

Metody

OperacjaSkładnia
Definicja metodyint add(int a, int b) { return a + b; }
Bez wartości zwracanejvoid greet() { ... }
Metoda statycznastatic int square(int x) { return x * x; }
Metoda publicznapublic String getName() { return name; }
Zmienna liczba argumentówint sum(int... nums) { ... }
Wywołanie metodyint r = add(2, 3);
Wywołanie metody statycznejMath.max(a, b);
Przeciążanie metodint max(int a, int b) i double max(double a, double b)

Klasy i OOP

OperacjaSkładnia
Definicja klasypublic class Dog { ... }
Poleprivate String name;
Konstruktorpublic Dog(String name) { this.name = name; }
Utworzenie obiektuDog d = new Dog("Rex");
Getter / setterpublic String getName() { return name; }
Dziedziczenieclass Puppy extends Dog { ... }
Interfejsinterface Runnable { void run(); }
Implementacja interfejsuclass 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.

MechanizmSkładnia
Rekord (niemutowalne dane)record Point(int x, int y) {}
Użycie rekorduvar p = new Point(1, 2); p.x();
Enumenum Day { MON, TUE, WED }
Enum z wartościamienum Coin { PENNY(1), DIME(10); ... }
Blok tekstowyString s = """\n multi\n line\n """;
Dopasowanie wzorca instanceofif (o instanceof String s) { s.length(); }
Wzorce w switch (Java 21)case Integer i -> ...; case String s -> ...;
Klasa zapieczętowanasealed interface Shape permits Circle, Square {}

Kolekcje

Kolekcje generyczne z java.util.

TypZastosowanie 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();
Tablicaint[] nums = {1, 2, 3};
Iteracja po liściefor (T x : list) { ... }
Iteracja po mapiefor (var e : map.entrySet()) { e.getKey(); e.getValue(); }

Strumienie i lambdy

Funkcyjne potoki operacji na kolekcjach (Java 8+).

OperacjaSkładnia
Wyrażenie lambdax -> x * 2
Utworzenie strumienialist.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)

WzorzecSkładnia
Try / catchtry { ... } catch (Exception e) { ... }
Przechwycenie konkretnego wyjątkucatch (IOException e) { ... }
Finallyfinally { ... } wykonuje się zawsze
Try-with-resourcestry (Scanner sc = new Scanner(...)) { ... }
Rzucenie wyjątkuthrow new IllegalArgumentException("bad");
Klasa generycznaclass 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?
Dla obiektów == 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?
Streams API (Java 8+) pozwala przetwarzać kolekcje czytelnym potokiem operacji, takich jak 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?
Użyj 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?
Tablica (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.
Ilustracja języków programowania w Coddy

Naucz się języka Java z Coddy

ZACZNIJ