## Простые типы данных #### Целые числа | Имя | Разрядность | Диапазон | | ------- | ----------- | -------------------------------------------- | | `long` | 64 | -9223372036854775808 ... 9223372036854775807 | | `int` | 32 | -2147483648 ... 2147483647 | | `short` | 16 | -32768 ... 32767 | | `byte` | 8 | -128 ... 127 | #### Действительные числа | Имя | Разрядность | Диапазон | | -------- | ----------- | --------------------- | | `double` | 64 | 1.7e-308 ... 1.7e+308 | | `float` | 32 | 3.4e-038 ... 3.4e+038 | #### Символьный тип - `char` #### Логический тип - `boolean` ## Арифметические операторы | Оператор | Результат | | -------- | --------------------------------- | | `+` | Сложение | | `-` | Вычитание, унарный минус | | `*` | Умножение | | `/` | Деление | | `%` | Деление по модулю | | `++` | Декремент | | `+=` | Сложение с присваиванием | | `-=` | Вычитание с присваиванием | | `*=` | Умножение с присваиванием | | `/=` | Деление с присваиванием | | `%=` | Деление по модулю с присваиванием | | `--` | Декремент | ## Булевы логические операторы | Оператор | Результат | | -------- | --------------------------------------------------------- | | `&` | Логическое И (AND) | | `\|` | Логическое ИЛИ (OR) | | `^` | Логическое исключающее ИЛИ (XOR) | | `\|\|` | Оператор OR быстрой оценки выражений (short circult OR) | | `&&` | Оператор AND быстрой оценки выражений (short citcult AND) | | `!` | Логическое унарное отрицание (NOT) | | `&=` | И (AND) с присваиванием | | `=` | ИЛИ (OR) с присваиванием | | `^=` | Исключающее ИЛИ (XOR) с присваиванием | | `==` | Равно | | `!=` | Не равно | | `? :` | Тернарный оператор `if-then-else` | ## Целочисленные битовые операторы | Оператор | Результат | | -------- | ------------------------------------------------- | | `&` | Побитовое И (AND) | | `1` | Побитовое ИЛИ (OR) | | `^` | Побитовое исключающее ИЛИ (XOR) | | `>>` | Сдвиг вправо | | `>>>` | Сдвиг вправо с заполнением нулями | | `<<` | Сдвиг влево | | `~` | Побитовое унарное отрицание (NOT) | | `&=` | Побитовое И (AND) с присваиванием | | `\|=` | Побитовое ИЛИ (OR) с присваиванием | | `^=` | Побитовое исключающее ИЛИ (XOR) с присваиванием | | `>>=` | Сдвиг вправо с присваиванием | | `>>>=` | Сдвиг вправо с заполнением нулями с присваиванием | | `<<=` | Сдвиг влево с присваиванием | ## Операторы управления выполнением программы 1. Условный оператор `if-else` 2. Оператор выбора `switch` 3. Оператор цикла `while` 4. Оператор цикла `do-while` 5. Оператор цикла `for` 6. Операторы `break`, `continue`, `return` ## Массивы #### Одномерные Объявление массива: ```java тип[] имя; тип имя[]; ``` Создание массива: ```java new тип[количество элементов]; ``` #### Двумерные Объявление массива: ```java тип[][] имя; тип имя[][]; ``` Создание массива: ```java new тип[количество строк][количество столбцов]; ``` ```java public class Main { public static void main(String[] args) { int n = 5; int a[] = new int[n]; for (int i = 0; i < n; i++) a[i] = i * i; for (int i = 0; i < n; i++) System.out.print(a[i] + " "); } } ``` ## Строковые величины #### Класс `String` 1. `length()` - определение длины строки 2. `charAt()` - выбор символа из строки 3. `substring()` - выбор подстроки 4. `equals()` - сравнение строк на равенство 5. `compareTo()` - лексикографическое сравнение строк 6. `indexOf()` - номер первого вхождения подстроки в строку #### Класс `StringBuffer` Конструкторы: - `stringBuffer()` - создает пустой объект с емкостью 16 символов - `stringBuffer(int capacity)` - создает пустой объект заданной емкости `capacity` - `stringBuffer(String str)` - создает объект емкостью `str.length() + 16` Методы: - `append()` - добавление подстроки - `insert()` - вставка подстроки - `delete()` - удаление подстроки - `replace()` - замена подстроки Программа, считающая факториал числа: ```java public class Main { public static void main(String[] args) { int f = 1, n = 14; for (int i = 1; i <= n; i++) f *= i; System.out.print("f = " + f); } } ``` Обход ограничений через `BigInteger`: ```java public class Main { public static void main(String[] args) { int n = 14; BigInteger f = BigInteger.valueOf(1); for (int i = 1; i <= n; i++) { BigInteger big_i = BigInteger.valueOf(i); f = f.multiply(big_i); } System.out.print("f = " + f); } } ```