JavaRush /Курси /JAVA 25 SELF /Числа та символи в Java

Числа та символи в Java

JAVA 25 SELF
Рівень 6 , Лекція 1
Відкрита

1. Які бувають числа?

У програмуванні ми постійно працюємо з числами — від віку користувача до кількості зірок у галактиці чи копійок на банківському рахунку. Але різні завдання вимагають різних типів чисел: інколи важливо зберігати лише цілі числа, інколи — дуже точні дроби, а інколи потрібні числа «без мінусів».

Цілі числа (int та інші)

Ціле число — це число без дробової частини.
У Java найчастіше використовують тип int, але, крім нього, є ще кілька варіантів, що відрізняються розмірами та діапазонами.

  • int — основний «робочий» тип для цілих чисел. Він вміщує доволі великі значення й водночас займає небагато памʼяті. Наприклад, для підрахунку вподобайок, віку, кількості днів у році майже завжди використовують int.
  • long — використовують, якщо значення можуть бути дуже великими (наприклад, мільярди чи трильйони). Скажімо, щоб зберігати суму всіх переглядів YouTube за всю історію.
  • short — ощадний, але рідко вживаний тип. Підходить там, де багато однакових невеликих значень (наприклад, аудіодані, компоненти кольору).
  • byte — для ще менших значень, особливо у графіці та роботі з файлами, де важлива економія памʼяті.

Дробові числа (double, float)

Іноді потрібно працювати з числами, що мають дробову частину. Наприклад, температура повітря, середній бал студента, ціна товару з копійками.

  • double — це тип «за замовчуванням» для зберігання дробових чисел. Досить точний для більшості обчислень (наприклад, 3.1415926535…).
  • float — легший і менш точний тип, частіше трапляється у задачах компʼютерної графіки або обробці великих масивів даних, де важлива економія памʼяті.

Спеціальні числові типи

  • BigInteger — якщо потрібно працювати з величезними числами, що перевищують стандартні діапазони, наприклад, у криптографії або обчисленнях у астрономії.
  • BigDecimal — клас для точних обчислень із дробовими числами (фінанси, розрахунок відсотків), допомагає уникнути неточностей, притаманних double і float.

2. Діапазони значень

Цілі типи можуть зберігати як додатні, так і відʼємні числа. Це зручно, коли значення можуть бути «і вище, і нижче нуля»: наприклад, температура, баланс рахунку, висота відносно рівня моря.

Приклад:

  • int : -10, 0, 50
  • long : 0, 10, -1000_000_000_000_000_000L

Цілі типи

Тип Розмір Діапазон значень Приклад використання
byte
1 байт -128 – 127 -128, 0, 127
short
2 байти -32 768 – 32 767 -1 000, 0, 32 000
int
4 байти -2 147 483 648 – 2 147 483 647 -1 000 000, 0, 2 000 000
long
8 байтів -9 223 372 036 854 775 808
до 9 223 372 036 854 775 807
-10_000_000_000, 1

Дробові типи

Тип Розмір Приклад значень Опис
float
4 байти 3.14f, -0.001f одинарна точність (7 цифр)
double
8 байтів 3.1415, -1.7E+308 подвійна точність (15–16 цифр)

3. Суфікси для чисел

У деяких ситуаціях треба явно вказати, який тип ви хочете використовувати для числа. Це робиться за допомогою суфіксів:

  • L або l — для типу long (наприклад, 10000000000L)
  • F або f — для типу float (наприклад, 3.14f)
  • D або d — для типу double (зазвичай не потрібен, бо дробові числа без суфікса — це double)

Якщо не вказати суфікс, за замовчуванням ціле число вважається int, а дробове — double. Наприклад, 42 — це int, а 3.14 — це double.

Навіщо це потрібно? Наприклад, щоб не отримати помилку під час присвоєння великого числа змінній типу long:

long bigNumber = 9000000000L; // якщо прибрати L, компілятор видасть помилку

Розділювач у вигляді підкреслення _

Коли числа довгі, легко заплутатися в нулях. Для зручності читання й краси в Java можна використовувати підкреслення всередині числа.

int population = 146_700_000;
long stars = 100_000_000_000L;
Використання підкреслень для зручності читання чисел

Це цілком коректно: компілятор ігнорує підкреслення, а вам зручно одразу «на око» бачити розряди. Головне — не ставити підкреслення на початку, у кінці, після крапки або перед суфіксом.

4. Символьний тип char: що це й навіщо?

Тип char використовується для зберігання одного символу: літери, цифри, розділового знака, пробілу, спеціального символу і навіть емодзі.

Приклади:

char letter = 'A';
char digit = '7';
char symbol = '?';
char cyrillic = 'Ж';
char euro = '€';
char smile = '☺'; // Так, таке теж можна!

Важливі правила:

  • Значення типу char записується в одинарних лапках: 'A', '7', '#'.
  • Це саме один символ! Якщо написати 'AB' — компілятор видасть помилку.
  • За кожним символом стоїть свій числовий код (Unicode).

Unicode: символи з усього світу

Java використовує стандарт Unicode, що дає змогу зберігати не лише латиницю, а й кирилицю, ієрогліфи, емодзі та навіть давньоєгипетські ієрогліфи (якщо раптом знадобиться).

Цікавий факт:
Тип char — це, фактично, 16‑бітне число (від 0 до 65535), де кожному значенню відповідає свій символ.

5. Символи й числа: звʼязок через Unicode

Оскільки кожен символ — це число, ми можемо спокійно перетворювати char на int і назад.

Приклад: дізнатися Unicode‑код символу

public class CharToInt {
    public static void main(String[] args) {
        char ch = 'A';
        int code = ch; // Неявне перетворення char → int

        System.out.println("Код символу '" + ch + "': " + code);
    }
}

Результат:

Код символу 'A': 65

А тепер навпаки — отримати символ за кодом:

public class IntToChar {
    public static void main(String[] args) {
        int code = 1040; // Код літери 'А' в Unicode (кирилиця)
        char ch = (char) code; // Явне перетворення int → char

        System.out.println("Символ з кодом " + code + ": " + ch);
    }
}

Результат:

Символ з кодом 1040: А

6. Основні примітивні типи Java

Тип Розмір (біт) Діапазон значень Приклад значення Примітка
byte
8 -128 – 127 42 Дуже рідко використовується
short
16 -32 768 – 32 767 12345 Для економії памʼяті
int
32 -2 147 483 648 – 2 147 483 647 1 000 000 Основний для цілих чисел
long
64 ≈ −9,22 × 1018 – ≈ 9,22 × 1018 5000000000L Для дуже великих цілих чисел
float
32 ≈ ±3,4 × 10-38 – ±3,4 × 1038 3.14f Дробові числа, низька точність
double
64 ≈ ±1,7 × 10-308 – ±1,7 × 10308 2.718 Дробові числа, висока точність
char
16 0 – 65 535 (Unicode) 'Ж', 'A', '?' Один символ
boolean
1 true, false true Логічне значення
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ