Одна страница — самое важное.
byte 8бит -128..127
short 16бит -32768..32767
int 32бит ~±2млрд
long 64бит ~±9*10^18 суффикс L
float 32бит дробное суффикс f
double 64бит дробное точнее
boolean true/false
char 16бит символ
int a = 10 / 3; // 3 (целое!)
double b = 10 / 3; // 3.0 (тоже целое — потом в double)
double c = 10.0 / 3; // 3.333 (правильно)
double d = (double) 10 / 3; // 3.333
int x = 5;
int y = x++; // y=5, x=6 (постфикс — сначала присвоить)
int z = ++x; // z=7, x=7 (префикс — сначала прибавить)
// if — для диапазонов и сложных условий
if (x > 0 && x < 100) { ... }
// switch — для конкретных значений
switch (day) {
case 1: ... break;
default: ...
}
// switch-выражение (Java 14+) — без break
String s = switch (day) {
case 1 -> "Пн";
case 2 -> "Вт";
default -> "?";
};
// Известно число итераций
for (int i = 0; i < n; i++) { }
// Условие, количество неизвестно
while (condition) { }
// Хотя бы одно выполнение гарантировано
do { } while (condition);
// Перебор коллекции/массива
for (String s : list) { }
// Массив — фиксированный размер
int[] arr = new int[5];
int[] arr = {1, 2, 3};
arr.length; // не метод!
arr[i];
// ArrayList — динамический
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.get(0);
list.size(); // метод!
list.remove(0);
s.equals(s2) // сравнение (не ==!)
s.length()
s.charAt(i)
s.contains("x")
s.substring(2, 5)
s.split(",")
s.trim()
s.toUpperCase()
s.replace("a", "b")
Integer.parseInt(s) // String → int
String.valueOf(n) // int → String
try {
// рискованный код
} catch (SpecificException e) {
// обработка
} catch (Exception e) {
// общий — после конкретного
} finally {
// всегда выполняется
}
// Выброс
throw new IllegalArgumentException("сообщение");
// Объявление checked
public void method() throws IOException { }
public class Dog {
private String name; // поле
public Dog(String name) { // конструктор
this.name = name;
}
public String getName() { // геттер
return name;
}
}
class Husky extends Dog { // наследование
public Husky(String name) {
super(name); // конструктор родителя
}
@Override // переопределение
public String getName() {
return "Husky: " + super.getName();
}
}
// Подсчитать количество каждого элемента
HashMap<String, Integer> freq = new HashMap<>();
for (String word : words) {
freq.put(word, freq.getOrDefault(word, 0) + 1);
}
s1 == s2 для строк — неверно, нужно equalsarr.length() — нет скобок, только arr.lengthlist.size — нужны скобки, list.size()break — провалится в следующий caseint / int — целочисленное деление, дробь теряетсяInteger.parseInt(null) — NumberFormatException