Menu
Coddy logo textTech

Шпаргалка по Java

Последнее обновление

Hello World и структура программы

Любая программа на Java запускается из метода main внутри класса.

ЭлементКод
Объявление классаpublic class Main { ... }
Точка входаpublic static void main(String[] args) { ... }
Вывести строкуSystem.out.println("Hello, World!");
Вывести без перевода строкиSystem.out.print("text");
Считать вводScanner sc = new Scanner(System.in);
Импортировать классimport java.util.ArrayList;
Комментарии// line и /* block */

Типы данных

Примитивы пишутся со строчной буквы; их классы-обёртки - с заглавной.

ТипОписание
int32-битное знаковое целое
long64-битное знаковое целое
double / floatЧисла с плавающей точкой
booleantrue или false
charОдин 16-битный символ Unicode
byte / short8-битные / 16-битные целые
StringНеизменяемый текст (класс, а не примитив)
Integer, Double, BooleanКлассы-обёртки для примитивов
varВыводимый локальный тип (Java 10+)

Переменные

ОперацияСинтаксис
Объявить и инициализироватьint x = 5;
Вывод типа (локальный)var name = "Ada";
Константаfinal double PI = 3.14159;
Конкатенация строкString s = "Hi " + name;
Преобразовать строку в intint n = Integer.parseInt("42");
Преобразовать int в строкуString s = String.valueOf(42);
Форматированная строкаString.format("%d items", n)

Управление потоком

КонструкцияСинтаксис
If / elseif (x > 0) { ... } else { ... }
Оператор switchswitch (n) { case 1: ...; break; default: ...; }
Switch-выражениеvar s = switch (n) { case 1 -> "one"; default -> "other"; };
Цикл whilewhile (i < n) { ... }
Цикл do-whiledo { ... } while (i < n);
Цикл forfor (int i = 0; i < n; i++) { ... }
Расширенный for (for-each)for (String item : list) { ... }
Break / continuebreak; выходит из цикла, continue; переходит к следующей итерации

Методы

ОперацияСинтаксис
Определить методint add(int a, int b) { return a + b; }
Без возвращаемого значенияvoid greet() { ... }
Статический методstatic int square(int x) { return x * x; }
Публичный методpublic String getName() { return name; }
Varargs (переменное число аргументов)int sum(int... nums) { ... }
Вызвать методint r = add(2, 3);
Вызвать статический методMath.max(a, b);
Перегрузка методаint max(int a, int b) и double max(double a, double b)

Классы и ООП

ОперацияСинтаксис
Определить классpublic class Dog { ... }
Полеprivate String name;
Конструкторpublic Dog(String name) { this.name = name; }
Создать объектDog d = new Dog("Rex");
Геттер / сеттерpublic String getName() { return name; }
Наследованиеclass Puppy extends Dog { ... }
Интерфейсinterface Runnable { void run(); }
Реализовать интерфейсclass Task implements Runnable { ... }
Переопределить метод@Override public void speak() { ... }

Коллекции

Обобщённые коллекции из java.util.

ТипПрименение и пример
ArrayList<T>Динамический массив: list.add(1); list.get(0); list.size();
HashMap<K, V>Ключ-значение: map.put("a", 1); map.get("a");
HashSet<T>Уникальные значения: set.add(5); set.contains(5);
LinkedList<T>Двусвязный список, удобен как очередь/дек
ArrayDeque<T>Стек/очередь: dq.push(x); dq.pop();
Массивint[] nums = {1, 2, 3};
Обойти списокfor (T x : list) { ... }
Обойти mapfor (var e : map.entrySet()) { e.getKey(); e.getValue(); }

Стримы и лямбды

Конвейеры в функциональном стиле над коллекциями (Java 8+).

ОперацияСинтаксис
Лямбда-выражениеx -> x * 2
Создать стримlist.stream()
Фильтрация.filter(n -> n > 0)
Map / преобразование.map(n -> n * 2)
Сортировка.sorted() или .sorted(Comparator.reverseOrder())
Свёртка / сумма.reduce(0, Integer::sum)
Подсчёт / проверка.count(), .anyMatch(n -> n > 5)
Собрать в список.collect(Collectors.toList())
Для каждого.forEach(System.out::println)

Частые паттерны (try/catch, дженерики)

ПаттернСинтаксис
Try / catchtry { ... } catch (Exception e) { ... }
Перехват конкретного исключенияcatch (IOException e) { ... }
Finallyfinally { ... } выполняется всегда
Try-with-resourcestry (Scanner sc = new Scanner(...)) { ... }
Выбросить исключениеthrow new IllegalArgumentException("bad");
Обобщённый классclass Box<T> { T value; }
Обобщённый метод<T> T first(List<T> list) { ... }
Ограниченный тип<T extends Number>

Синтаксис Java, коллекции и операции со стримами, которые нужны чаще всего, на одной странице. Эта шпаргалка по Java - быстрый справочник для написания кода на Java: типы данных, управление потоком, классы, коллекции ArrayList/HashMap, Streams API, а также паттерны исключений и дженериков, которые вы используете каждый день.

Всё здесь - стандартная Java (Java 8 и новее), которая компилируется с помощью javac. Копируйте нужное или попробуйте любой фрагмент вживую в playground для Java - без установки JDK.

Часто задаваемые вопросы по шпаргалке Java

Эта шпаргалка по Java бесплатна?
Да. Эта шпаргалка по Java полностью бесплатна, регистрация не требуется. Добавьте её в закладки и возвращайтесь, когда нужно посмотреть синтаксис, коллекцию или операцию стрима.
В чём разница между == и .equals() в Java?
Для объектов == сравнивает ссылки - указывают ли две переменные на один и тот же объект, - а .equals() сравнивает содержимое. Два разных объекта String с одинаковым текстом равны по .equals(), но могут быть не равны по ==. Всегда используйте .equals() для сравнения строк и других объектов по значению; используйте == только для примитивов (int, boolean и т. д.) или для проверки на null.
Для чего нужны стримы в Java?
Streams API (Java 8+) позволяет обрабатывать коллекции читаемым конвейером операций - filter, map, sorted, reduce, collect - вместо ручных циклов. Вы начинаете с list.stream(), выстраиваете цепочку промежуточных операций и завершаете терминальной операцией вроде collect(Collectors.toList()) или forEach. Это делает код преобразования данных лаконичным и выразительным.
Можно ли практиковать Java онлайн?
Да. Откройте playground для Java, чтобы скомпилировать и запустить любой фрагмент из этой шпаргалки прямо в браузере - без установки JDK. А если нужна структура, бесплатный интерактивный курс Java от Coddy шаг за шагом проведёт вас от переменных и циклов до классов, коллекций и стримов.
Подходит ли эта шпаргалка для начинающих?
Да. Она построена от самых распространённых строительных блоков (типы, управление потоком, методы) к продвинутым (стримы, дженерики, исключения), так что верхние разделы можно использовать с первого дня и постепенно осваивать остальное.
Coddy programming languages illustration

Изучайте Java с Coddy

НАЧАТЬ