Урок №3. Примітивні типи даних. Сильна типізація. Приведення типів. [Java українською]

  Переглядів 3,282

Mykola Murza — Ukrainian IT

Mykola Murza — Ukrainian IT

День тому

Базовий курс з програмування мовою Java.
У третьому уроці ми говоримо про примітивні типи даних (цілочисельні, з плаваючою точкою, символьні та булеві). Також я розказую про сильну типізацію, привидення типів даних та цікаву історію про UKposts. Намагався зробити максимально цікаво та зрозуміло, аби ця тема не лякала початківців.
==============================
Посилання на JDK: jdk.java.net/java-se-ri/17
Посилання на IntelliJ IDEA: www.jetbrains.com/idea/download
Офіційна документація про примітиви: docs.oracle.com/javase/tutori...
Стаття про плаваючу точку та точність: www.ilikebigbits.com/2017_06_0...
Документація про BigDecimal: www.baeldung.com/java-bigdeci...
==============================
Зміст відео:
0:00 - Вступ до відео.
0:18 - Сильна типізація.
1:02 - Byte. Двійкова система.
3:44 - Цілочисельні дані.
4:33 - Числа з плаваючою точкою.
5:30 - Символьні дані.
6:03 - Булеві дані.
6:12 - Приведення даних (явне та неявне).
7:50 - Тестуємо та програмуємо.
9:51 - Історія і завершення відео.
==============================
Дякую, що дивитесь! Прошу залишати відгуки та побажання у коментарях.
Telegram-канал: t.me/java_classroom
#java #javacourse #ukraine #ua #programming #programminglanguage #программирование #програмування #курси #українською #мова #джава #byte #bit #short #int #integer #long #char #character #double #float #floating #boolean #bool #windows #windows10 #gangnamstyle

КОМЕНТАРІ: 30
@mykolamurza
@mykolamurza Рік тому
Домашнє завдання до уроку №3: 1) Створити змінні усіх типів даних (byte, short, int, long, float, double, char, boolean), задати їм довільне значення, яке якнайкраще показує сутність того чи іншого типу. 2) Помістити змінну типу long в змінну типу int. [* підказка] 3) Помістити змінну типу int в змінну типу char та вивести результат в консоль. Пояснити, чому так відбулось. [** підказка] * Для цього використовуй приведення типів (int), приклад використання показано у відео, 6:43. ** Згадай, що значенням char відповідають значення з таблиці ASCII.
@nazark01
@nazark01 7 місяців тому
крутий контент. Було би ще круто бачити дубляж ключовий значень або виразів на англ мові
@TheSerpius
@TheSerpius Рік тому
Дякую за якісний контент українською мовою!
@svitoij
@svitoij Рік тому
Дуже класна фраза на початку:"Скажу одразу, знати все на пам'ять не потрібно, ця інформація з часом сама відкладеться в голові. А я поки спробую просто і зрозуміло все пояснити"👍👍👍
@user-yb5mu1zs8t
@user-yb5mu1zs8t Рік тому
Ви дуже, дуже милий! Ідеально для людей, хто трохи боїться пірнати в усі ці науки 💙
@mykolamurza
@mykolamurza Рік тому
Хах, дякую!🥰 Це відео буде перезнято. Незважаючи, що матеріалу я дав більше, ніж зазвичай дають викладачі, він вийшов доволі заплутаний. Кількість інформації не зміниться, але подача покращиться😇
@sofiiabondarenko6615
@sofiiabondarenko6615 Рік тому
дякуюза вашу працю!
@mad-hat
@mad-hat Рік тому
Чудово зроблені слайди. Було би чудово, якби ви їх теж викладали у вільний доступ. 👍 за корисні посилання в описі. Чудове пояснення викладеного матеріалу
@mykolamurza
@mykolamurza Рік тому
Дякую за ідею. Подумаю, опублікую в ПДФ згодом.
@user-kp7uq1hm1y
@user-kp7uq1hm1y Рік тому
Дякую за україномовний урок! Все буде Україна!
@user-og2ti2wd5o
@user-og2ti2wd5o Рік тому
просто шикарно!
@user-zi4tu2pk6g
@user-zi4tu2pk6g 8 місяців тому
byte byteVal =(byte)127; System.out.println(byteVal);виводить 127 потім якщо 128 то -127 і по спадній до 256 ---- дорівнює 0 257 дорівнює 1. Цікаво що комп'ютер не знає що таке віднімання комп'ютер використовує блок суматора
@mykolamurza
@mykolamurza 8 місяців тому
Привіт, так, якщо писати 128, то буде -127 тощо. Ця особливість пов'язана з двійковим представленням чисел та внутрішньою роботою арифметичних операцій. Така зміна чисел відбувається через переповнення, тому коли ми пишемо, наприклад, 130, то ми отримуємо число 127 (максимальне додатне для byte з урахуванням 7 байтів під число), оскільки стрічка переповнена, переходимо до мінімального значення -128, і "зайві 2" додаємо до -128, що призводить до отримання -126. Якщо говорити за число 257, то це 127 + шлях від -128 до 0 і знову +1, виходить 1.
@user-zi4tu2pk6g
@user-zi4tu2pk6g 9 місяців тому
Чому true чи false займають аж 1байт їм стало б по біту типу 0 --- false 1 --- true?
@mykolamurza
@mykolamurza 9 місяців тому
Привіт. Так, абсолютно вірно! Щодо цього детальніше розповідаю тут: t.me/java_classroom/120
@mathgeometry328
@mathgeometry328 9 місяців тому
Short в Int розширююче перетворення а якщо навпаки яку має назву чи там немає назви?
@mykolamurza
@mykolamurza 9 місяців тому
В Java часто використовують саме терміни явне та неявне перетворення. Щодо твого питання - назва є, "звужувальне перетворення" (narrowing conversion).
@SuperKsiy
@SuperKsiy Рік тому
Мабуть, все ж таки примітивні типи даних, а не типи примітивних даних. Бо тоді виникає питання, що таке примітивні дані. Точність формулювань важлива.
@mykolamurza
@mykolamurza Рік тому
Гарне зауваження, змінимо табнейл і назву відео, дякую!
@vidakilla7242
@vidakilla7242 Рік тому
Поясніть будь ласка, чому у деяких випадках пишемо тип у дужках, а в інших ні? Наприклад, у першому ми не написали, а коли навпаки з integer y char, то пишемо (char) 1. //char to integer // char charValue = 'a'; // int integerValue = charValue; // System.out.println(integerValue); 2. //integer to char // int integerValue = 100; // char charValue = (char) integerValue; // System.out.println(charValue);
@mykolamurza
@mykolamurza Рік тому
Привіт. Це приведення типів (6:12). Якщо ми змінну "більшого" типу приводимо в "менший" (int -> char), то потрібно робити явне приведення типів, тобто писати (char). Оскільки ми маємо сказати Java, що ми дійсно хочемо засунути більшу змінну в менший діапазон. Наприклад, ми хочемо int засунути в byte, значення int може бути до 2.1 млрд, а байт - до 127. Тому ми кажемо, що так, ми впевнені, ми розуміємо які проблеми можуть бути і таке інше, але все ж хочемо перевести int в byte. Для приведення byte в int писати нічого не треба, бо байт менше. Навіть його найбільше значення (127) легко потрапить в діапазон int (2.1 млрд), жодних змін значення чи проблем з ним бути не може.
@vidakilla7242
@vidakilla7242 Рік тому
@@mykolamurzaщиро дякую!! Тепер усе зрозуміло!!
@mathgeometry328
@mathgeometry328 9 місяців тому
Чому сильна типізація а не елементарна?
@mykolamurza
@mykolamurza 9 місяців тому
Це термін :) Є програми із сильною типізацією - Java. Тут потрібно обрати тип для змінної і тільки такий тип в ній може бути. Є програми зі слабкою або динамічною типізацією - створив умовний var або let, і можеш складати туди будь-що, причому можеш спочатку зберегти число, потім об'єкт, потім рядок тощо. en.wikipedia.org/wiki/Strong_and_weak_typing
@bohdankokhan7235
@bohdankokhan7235 Рік тому
Чудово, що з'являється більше контенту українською. Але автор в даному відео допустив помилку: Розмір змінної типу boolean 1 bit, а не 1 byte (у двійковій системі для true це 1, а для false - 0) Також, вперше побачив таке пояснення двійкової системи. Зазвичай його показують на прикладі ламп, які світяться або ні. Кожна наступна відповідає подвійному попередньому значенню (1,2,4,8,16,32,64,128). Таким чином ми можемо отримати будь-яке число від 1 до 255, якщо жодна лампа не світиться то тоді значення 0. Половина відноситься на від'ємні значення(128), інша половина залишається на додатні значення+нуль(тому їх завжди на 1 менше). Ефект переповнення краще пояснити на круговій діаграмі де 127 переходить у -128.
@mykolamurza
@mykolamurza Рік тому
Добрий день! Дякую за рекомендації та відгук! Щодо розміру типу boolean - ви помиляєтесь. Так, для зберігання true/false дійсно достатньо 1/0, а це всього 1 біт. Але пам'ять, яку займає boolean, залежить від версії та дистрибутиву JVM. Oracle JDK, скажімо так, офіційна версія, для зберігання boolean виділяє 8 біт. Доказ: docs.oracle.com/javase/specs/jvms/se7/jvms7.pdf, сторінка номер 11, написано буде зверху. Я в відео кажу просто про єдине і найбільше значення для розуміння можливих затрат пам'яті. Великий тред на цю тему: stackoverflow.com/questions/20948361/why-does-the-boolean-data-type-need-8-bits
@mathgeometry328
@mathgeometry328 9 місяців тому
число 0 є нейтральне число ні додатньє ні відємне
@mykolamurza
@mykolamurza 9 місяців тому
Так, вірно. Підкажи, на якому тайм-коді я помилився, будь ласка :)
@MisaNia25
@MisaNia25 5 місяців тому
@@mykolamurza2:14
@mykolamurza
@mykolamurza 5 місяців тому
@@MisaNia25, дякую за таймкод. У даному моменті я казав не про те, що 0 додатнє число, а про те, що якщо лівий біт дорівнює 0, то число буде додатнє :)
Уроки Blender с нуля / #4 - Режим полного редактирования объекта
24:47
Школа itProger / Программирование
Переглядів 33 тис.
Урок №12. Stream API. Частина 1. Теорія. [Pro-українська Java]
12:08
Mykola Murza — IT українською
Переглядів 1,8 тис.
Разбираем основы Kafka и RabbitMQ
26:54
Digital train | Alex Babin
Переглядів 6 тис.