Програмування: java. Типи даних
Тип даних визначається трьома складовими:
Відео: Уроки Java - №3 Примітивні типи даних і змінні
- набором значень або об`єктів;
- набором операцій, які можуть бути застосовані до всіх значень в наборі;
- поданням даних, що визначає їх зберігання.
які бувають типи даних в Java?
Мова програмування містить деякі заздалегідь певні вбудовані типи і дозволяє програмістам визначати свої власні, призначені для користувача.
У Java типи даних діляться на примітивні і посилальні.
«Примітивний» означає, що подальше його розподіл неможливо. Розширювати або змінювати його мову програмування не дозволяє. Такий тип даних описується примітивними і іншими призначеними для користувача типами.
Мінлива примітивного типу містить значення, а посилальна - адреса об`єкта в пам`яті.
Мова Java. Типи даних: час і дата
Складові дані діляться на класи, інтерфейси і масиви. Членами интерфейсного типу є абстрактні методи і константи. У мові Java типи даних дата і час задаються конструктором Date ():
- d = new Date ().
Прикладом посилання також є рядок.
Мова Java. Типи даних: String
Рядок являє собою клас, визначений в бібліотеці Java, і він може бути використаний для роботи з текстом (послідовністю символів).
Оголошення посилальної String-змінної наступне: String str.
Перед тим як привласнити посилання на об`єкт такої змінної, необхідно створити його за допомогою оператора new. Наприклад, можна створити об`єкт класу String з текстом «Привіт»:
- str = new String ("вітання").
Що відбувається при виконанні цього коду? По-перше, виділяється пам`ять, і ім`я str зв`язується з цієї осередком пам`яті. Це не відрізняється від оголошення примітивної змінної. Другий фрагмент коду створює в пам`яті об`єкт String з текстом «Привіт» і зберігає посилання на нього (або адреса пам`яті) в str.
Довідкові типи даних Java також дозволяють привласнити посилання на об`єкт, що зберігається в одній змінної, інший. Обидві вони посилаються на один і той же об`єкт в пам`яті. Це може бути досягнуто в такий спосіб:
- String str1;
- String str2;
- str1 = new String ("вітання");
- str2 = str1;
Існує постійна посилання null, яка може бути присвоєна будь-довідкової змінної. Вона не посилається на жоден об`єкт.
Об`єкт String створюється за допомогою оператора new. Але так як рядки використовуються часто, є більш простий спосіб його створення. Всі рядкові літерали, т. Е. Послідовність символів, укладена в подвійні лапки, розглядаються як об`єкти String. Тому замість оператора new можна використовувати рядкові літерали:
- String str1 = "Hello".
Примітивні типи даних Java - byte, short, int, long, char, float, double і boolean. Вони діляться на дві категорії: логічну і числову. Остання може бути розділена на цілі числа і числа з плаваючою крапкою.
Цілі типи даних Java є числові типи, значення яких є цілими числами. Їх п`ять: byte, short, int, long і char.
Int
Int є 32-розрядний знаковий примітивний тип даних. Мінлива займає 32 біта пам`яті. Допустимий діапазон - від -2147483648 до 2147483647 (-231 до 231 - 1). Всі цілі числа в цьому діапазоні є цілочисельними літералами або константами. Наприклад, 10, -200, 0, 30, 19 є літералами int. Їх можна привласнити змінної int:
- int num1 = 21;
Цілі літерали можуть бути виражені у вигляді довічного, вісімкового, десяткового і шістнадцятирічного числа.
Коли літерал починається з нуля і має, принаймні, дві цифри, він вважається записаним в вісімковому форматі. 0 і 00 представляють однакове значення - нуль.
Все літерали int в форматі шістнадцятирічного числа починаються з 0x або 0x, і вони повинні містити хоча б одну шестнадцатеричную цифру:
- int num1 = 0x123.
Int-літерали в форматі двійкового числа починаються з 0b або 0B:
- int num1 = 0b10101.
Long
Це 64-розрядний знаковий примітивний тип. Використовується, коли результат обчислень може перевищувати діапазон int. Діапазон long - від -263 до 263- 1. Всі цілі числа цього діапазону є літералами довгого типу.
Щоб відрізняти в мові Java типи даних int і long, буквальний останнього типу завжди закінчується L або l.
Цілі літерали довгого типу також можуть бути виражені в вісімковому, шестнадцатеричном і довічним форматах.
Коли long-літерал присвоюється змінної long, компілятор Java перевіряє привласнюється значення і засвідчується, що воно знаходиться в прийнятному діапазоні- в іншому випадку відбудеться помилка компіляції.
Оскільки діапазон int менше, ніж у long, значення int-змінної завжди може бути присвоєно змінній типу long. Але зворотне привласнення неможливо навіть в межах діапазону int. Для цього використовується явне вказівку:
- num1 = (int) num2;
Byte
Byte є 8-розрядний цілий примітивний тип. Його діапазон - від -128 до 127 (-27 до 27 - 1). Це найменший цілий тип, наявний в Java. Як правило, байтові змінні використовуються, коли в програмі задіяно багато значень в діапазоні від -128 до 127, або при роботі з бінарними даними. На відміну від литералов int і long, byte-літерали відсутні. Проте можна призначити byte-змінної будь-int-літерал, так як він перекриває діапазон байта.
Якщо значення змінної виходить за межі діапазону, Java видасть помилку компілятора.
Крім того, можна привласнити тільки int-літерал, але не значення, що зберігається в змінної int, так як при цьому можлива втрата точності. Для цього буде потрібно явне приведення типу.
- b1 = (byte) num1.
Short
Являє собою 16-розрядний знаковий цілий примітивний тип даних. Його діапазон - від -32768 до 32767 (або -215 до 215 - 1).
Як правило, необхідність в коротких змінних виникає, коли програма використовує велику кількість значень, які не перевищують зазначений діапазон. Short-літерал відсутня, але можливе присвоєння будь-якого литерала int в межах діапазону short. Значення byte-змінної може бути присвоєно завжди. Решта правила присвоєння int або long short-змінної такі ж, як для byte.
Char
Char є 16-розрядним беззнаковим примітивним типом даних, який представляє символ Юнікоду. Відсутність знака означає, що змінна не може мати від`ємне значення. Діапазон - від 0 до 65535, що збігається з кодуванням набору символів Юнікоду. Літерал представляє значення char і може бути виражений в таких формах:
- символ, укладений в одинарні лапки;
- послідовність керуючих символів;
- послідовність керуючих символів юникода;
- послідовність вісімкових керуючих символів.
Символ може бути виражений шляхом укладення його в одинарні лапки: char C1 = `A`. Подвійні лапки позначають строковий літерал, який не може бути присвоєний char-змінної, навіть якщо рядок складається тільки з одного символу. Це неприпустимо, тому що посилання примітивної змінної не присвоюється. Всі рядкові літерали є об`єктами класу String і, отже, посиланнями, тоді як символьні відносяться до примітивного типу.
Відео: Java для початківців. Урок 3: Рядки (String) в Java. Довідкові типи даних.
Літерал, виражений керуючої послідовністю, записується у вигляді зворотної косої межі з символом в одиночних лапках. Всього їх 8: &lsquo- n&rsquo-, &lsquo- r&rsquo-, &lsquo- f&rsquo-, &lsquo- b&rsquo-, &lsquo- t&rsquo-, &lsquo - &rsquo-, &lsquo- &rdquo-&rsquo-, &lsquo- &rsquo-&rsquo-.
Керуюча юнікод-послідовність має вигляд ` uxxxx`, де u (зворотний слеш, за яким слід рядкова u) позначає її початок, а хххх представляє рівно чотири шістнадцяткові цифри коду символу в системі Юнікод. Наприклад, `A` має значення 65 в десятковій системі і 41 в шістнадцятковій. Таким чином, цей символ може бути представлений як ` u0041`.
Відео: 03 - Типи даних і змінні. курс "Основи програмування"
Вісімкова керуюча послідовність записується у вигляді ` nnn`, де n - восьмерична цифра (0-7). Діапазон значень - від ` 000` до ` 377`, де 3778 відповідає 25510. Тому вона використовується для представлення символів з кодом від 0 до 255, необхідного для сумісності з іншими мовами програмування. На відміну від Юнікод-послідовності, де необхідні всі чотири шістнадцяткові цифри, тут можна використовувати 1, 2 або 3 восьмеричні: ` n`, ` nn` або ` nnn`.
логічний тип
Boolean має тільки два дійсних значення: true (істина) і false (брехня). Вони називаються булевими літералами. Логічна змінна не може бути приведена до іншого типу і навпаки. Java не визначає розмір boolean - він залежить від конкретної реалізації віртуальної Java- машини.
Типи даних Java з плаваючою точкою
Число, яке містить дробову частину, в пам`яті комп`ютера може зберігатися в поданні з фіксованою кількістю цифр до і після точки або із зазначенням її положення. Так як кількість цифр може змінюватися, то кажуть, що точка «плаває».
У мові Java типи даних з плаваючою точкою використовують 32 біта. Відповідно до стандарту IEEE 754, це відповідає одинарної точності, яка дозволяє представляти, наприклад, числа 1,4 х 10-45 і 3,4 х 1038, причому як позитивні, так і негативні.
Усе дійсні числа, які закінчуються на f або F, називаються float-літералами. Вони можуть бути представлені в форматі десяткового числа і у вигляді наукової нотації. наприклад:
Відео: Java Tutorial # 4 | Data Types and Type conversions in Java | JAVA9S.com
- float f1 = 3.25F;
- float f2 = 32.5E-1F;
- float f3 = 0.325E + 1F.
Тип визначає два нуля: + 0.0F (або 0.0F) і -0.0F. Однак для цілей порівняння обидва нуля вважаються рівними. Крім того, їм визначено два види нескінченності: позитивна і негативна. Результати деяких операцій (наприклад, розподіл 0.0F на 0.0F) не визначені і представлені спеціальним значенням NaN.
подвійна точність
Для зберігання чисел з плаваючою точкою double використовує 64 біта. Число подвійної точності може представляти позитивні і негативні значення величиною 4,9 х 10-324 і 1,7 х 10308.
Всі дійсні числа за замовчуванням є подвійними літералами. За бажанням можуть явно позначатися суфіксом d або D, наприклад, 19.27d. Подвійний літерал може бути виражений в десяткового формі і в науковій нотації.