Примитивные типы:

  • int - целое число
  • double - вещественное число
  • char - символ
  • String - строчка
  • boolean - логическая переменная (равна либо true, либо false)

Массивы:

int[] a;            // Квадратные скобочки указывают на то что это массив, int - на то что каждый элемент целого типа
String[] b;         // Массив строчек
a = new int[10];    // Создали массив состоящий из 10 элементов
b = new String[20];
a[0] = 1;           // Нумерация элементов с нуля
a[9] = 10;
int sum = a[0] + a[9];

double[] c = {42.1, 2.5, 7.3}; // Массив размера 3 инициализированный значениями в скобочках 

Динамический массив:

ArrayList<Integer> xs = new ArrayList<Integer>();
xs.add(1);
xs.add(2);
int firstValue = xs.get(0);
int size = xs.size();

Комментирование кода:

// Две косые черты в начале строчки сделают все написанное далее в этой строчке - комментарием

/* Косая черта и звездочка
сделают
комментарием все вплоть
до звездочки и косой черты */

Арифметические операции:

  • + - * / - при этом деление выполняется нацело если применяется к числам целого типа
  • % - взятие по модулю (например 5 % 3 == 2)

Операции сравнения:

  • == != > < >= <= - равно, не равно, больше, меньше, не меньше, не больше

Логические операции:

  • && || ! - логические И, ИЛИ, НЕ
  • & | ^ - И, ИЛИ, эксклюзивное ИЛИ (когда ровно одно - правда)

Примеры if/else:

if (a == 10) {
    // Верно что a == 10
} else if (a == 20) {
    // Верно что a == 20
} else {
    // Верно что a != 10 и a != 20
}

Примеры for/while:

for (int i = 0; i < 10; i += 1) {
}

int i = 0;
while (i < 10) {
    i += 1;
}

int i = 0;
do {
    i += 1;
} while (i < 10);

Main-функция:

public static void main(String[] args) {
}

Чтобы напечатать в консоль:

System.out.print("Вывод ");                                   // print - выводит в консоль без окончания строки
System.out.println("в консоль значения переменной a = " + a); // println - выводит в консоль и завершает строку
System.out.print("Это уже вторая строка вывода\n");           // \n - специальный символ завершения строки (иначе говоря - переноса каретки)
System.out.println("" + 2 + 3 + 9); // операция плюс видит слева строку и справа число, поэтому число преобразует в строку и объединит полученные строки и так далее

Чтобы считать из консоли:

import java.util.Scanner; // эту строчку надо написать вверху файла
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();

Работа со строками:

String work = "Test String"; // Строки можно задавать в двойных кавычках
char c1 = work.charAt(3);    // Считает 3-ий символ (индексация с нуля, т.е. букву 't')
char c2 = 't';               // Символы в отличии от строк задаются в одинарных кавычках
if (c1 == c2) {              // Проверяем что все правильно
    System.out.println("Ok!");
}

Scanner scanner = new Scanner(System.in);
String nextWord = scanner.next();  // Сканнер разбивает введенные данные по пробелам и переносам строк на "слова"
System.out.println("Введенное слово: " + nextWord + " (длина: " + nextWord.length() + ")");

Случайные числа:

import java.util.Random; // эту строчку надо написать вверху файла
Random rand = new Random(239);
int n = rand.nextInt(50);

Таблица приоритетов:

Приоритет Операция
13 [] ()
12 ++ –
11 ++ – + - !
10 * / %
9 + -
8 < <= > >=
7 == !=
6 &
5 ^
4 |
3 &&
2 ||
1 = += -= *= /= %= &= ^= |=