В Java для хранения целых чисел есть 4 примитивных типа: byte, short, int, long. Главное различие между ними — это размер занимаемой памяти и диапазон значений.
byte(8 бит): от -128 до 127.short(16 бит): от -32,768 до 32,767.int(32 бита): основной тип, до ±2 миллиардов.long(64 бита): для огромных чисел. Литералы этого типа помечаются суффиксомL(например,5000000000L).
Правильный выбор типа данных экономит память (хотя в современном мире это менее критично, но важно для массивов) и спасает от ошибок переполнения. Практикуемся!
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Тип и его размер (в битах)
В этом задании из тренажёра по Java в левой колонке перечислены примитивные целочисленные типы данных, а в правой — возможные варианты их размера в битах. Сопоставьте каждый тип со своим размером. Обратите внимание, что варианты справа перемешаны, лишних значений нет, для каждого типа существует ровно один подходящий размер.
2. Сортировка по вместимости
В этом задании из тренажёра по Java в левой области показан список примитивных целочисленных типов данных Java в перемешанном порядке. Ваша задача — расставить эти типы так, чтобы они шли по возрастанию диапазона представимых значений: от наименьшего по вместимости типа к наибольшему. Обратите внимание, что все варианты нужно использовать, лишних элементов нет.
3. Суффикс Long
Дополните фрагмент программы на Java так, чтобы объявление переменной типа long с очень большим целым литералом было корректным и код успешно компилировался. В конце числового литерала для типа long необходимо использовать подходящий суффикс, чтобы явно указать, что это значение относится к расширенному целочисленному типу, а не к стандартному int.
public class Main {
public static void main(String[] args) {
long bigNumber = 3000000000input1S;
System.out.println(bigNumber);
}
}4. Подбор типа для значений
Перед вами набор целочисленных литералов Java. Ваша задача — разнести их по категориям в соответствии с минимальным подходящим типом: byte, short или long. Учитывайте диапазоны примитивных типов: byte помещает только небольшие числа, short — побольше, а long используется для очень больших значений, выходящих за пределы int. Каждый элемент должен оказаться ровно в одной из категорий.
0100127-128128-12932_767-32_76832_768-32_7692_147_483_647-2_147_483_6482_147_483_648L-2_147_483_649L5. Выбор типа по контексту
В фрагменте Java‑кода объявляются переменные для хранения возраста человека, года и населения планеты. В пропусках вместо типов нужно из выпадающего списка выбрать подходящий примитивный целочисленный тип (byte, short, int или long), чтобы значения укладывались в допустимый диапазон и код был логичным.
public class DemographyExample {
public static void main(String[] args) {
// возраст человека в годах
input1S age = 35;
// год текущего исследования
input2S year = 2024;
// оценка населения планеты (в людях)
input3S worldPopulation = 8_000_000_000L;
System.out.println("Age: " + age);
System.out.println("Year: " + year);
System.out.println("World population: " + worldPopulation);
}
}6. Переполнение byte
Проанализируйте фрагмент кода на Java, в котором используется переменная типа byte на границе диапазона допустимых значений. После инкремента эта переменная выводится на экран. Вам нужно понять, как работает переполнение целочисленного типа byte в Java, и выбрать из вариантов тот результат, который действительно будет напечатан в консоли при выполнении программы.
public class Main {
public static void main(String[] args) {
byte b = 127;
b++;
System.out.println(b);
}
}7. Выделение типов
Проанализируйте фрагмент Java‑кода с объявлением переменных разных типов. Ваша задача — для каждого выделенного фрагмента указать, является ли он целочисленным примитивным типом (byte, short, int, long) или нет. Это поможет научиться быстро распознавать целочисленные примитивы среди других типов (например, String, double, boolean) в объявлениях переменных.
{{byte~|~t1}} age = 25;
{{short~|~t2}} year = 2024;
{{int~|~t3}} daysInWeek = 7;
{{long~|~t4}} population = 8_000_000_000L;
{{double~|~t5}} pi = 3.14;
{{boolean~|~t6}} isActive = true;
{{String~|~t7}} name = "Alice";8. Ошибка присваивания
В приведённом фрагменте Java‑кода допущена ошибка в объявлении и инициализации переменной целочисленного типа. Значение, которое присваивается переменной, не укладывается в диапазон выбранного типа, из‑за чего код не компилируется. Исправьте строку с объявлением так, чтобы тип и значение были совместимы и программа успешно собиралась.
public class Main { public static void main(String[] args) { // Сохраним точный возраст пользователя в годах byte age = 200; System.out.println(age); }}