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
Цілі типи
| Тип | Розмір | Діапазон значень | Приклад використання |
|---|---|---|---|
|
1 байт | -128 – 127 | -128, 0, 127 |
|
2 байти | -32 768 – 32 767 | -1 000, 0, 32 000 |
|
4 байти | -2 147 483 648 – 2 147 483 647 | -1 000 000, 0, 2 000 000 |
|
8 байтів | -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 |
-10_000_000_000, 1 |
Дробові типи
| Тип | Розмір | Приклад значень | Опис |
|---|---|---|---|
|
4 байти | 3.14f, -0.001f | одинарна точність (7 цифр) |
|
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
| Тип | Розмір (біт) | Діапазон значень | Приклад значення | Примітка |
|---|---|---|---|---|
|
8 | -128 – 127 | 42 | Дуже рідко використовується |
|
16 | -32 768 – 32 767 | 12345 | Для економії памʼяті |
|
32 | -2 147 483 648 – 2 147 483 647 | 1 000 000 | Основний для цілих чисел |
|
64 | ≈ −9,22 × 1018 – ≈ 9,22 × 1018 | 5000000000L | Для дуже великих цілих чисел |
|
32 | ≈ ±3,4 × 10-38 – ±3,4 × 1038 | 3.14f | Дробові числа, низька точність |
|
64 | ≈ ±1,7 × 10-308 – ±1,7 × 10308 | 2.718 | Дробові числа, висока точність |
|
16 | 0 – 65 535 (Unicode) | 'Ж', 'A', '?' | Один символ |
|
1 | true, false | true | Логічне значення |
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ