Java Classroom
485 subscribers
21 photos
81 links
Вивчи Java — одну з найпотрібніших мов програмування — стань топ-фахівцем!

Відеокурси, опитування та новини.

Авторський канал Мурзи Миколи.

Флуд: https://t.me/+RTFFjWxtO8sxYzJi
Усі тести: @java_classroom_quizzes
Download Telegram
Що таке Серіалізація (Serialization), як вона реалізується в Java?

Пиши сюди👇🏻
👍4
Яке ключове слово потрібно застосувати до поля, аби воно було пропущено під час серіалізації?
Anonymous Quiz
9%
static
51%
transient
18%
volatile
6%
final
16%
Жодне з перелічених.
Java Classroom
Питання зі співбесіди з відкритою відповіддю: Відмінності String, StringBuilder, StringBuffer. #interview #question Пиши сюди👇🏻
✅Правильна відповідь:

String — фінальний імутабельний клас, який використовується в Java для представлення рядків. Відповідно, успадкувати клас або змінити об'єкт — неможливо. Будь-яке створення нового рядка, його оновлення шляхом конкатенації — створює НОВИЙ об'єкт з новим значенням. Об'єкт класу String зберігається в String Pool.

StringBuilder — фінальний мутабельний клас, який дозволяє працювати з масивом символьних даних для збільшення ефективності роботи зі String, Імпортувати його в клас для застосування не потрібно. Він застосовується, коли потрібно багато змінювати значення рядка для того, аби не генерувати зайве сміття в пам'яті.

StringBuffer — аналогічний до StringBuilder фінальний мутабельний клас, але потокобезпечний, тобто кожен метод в ньому — синхронізований. Його необхідно використовувати в багатопотокових програмах, але синхронізація робить "Buffer" значно повільнішим, тому використовувати його завжди не потрібно.

#interview #answer
🔥5👍3
Java Classroom
😳🤯Я ШОКОВАНИЙ! Неймовірна задача, яку мені відправили із сьогоднішньої співбесіди. 🙏🏻Сподіваюсь ви зараз у безпеці. Бережіть себе і читайте тільки у тому випадку, якщо все спокійно! Одного ранку у своїй шафці в школі Віктор виявив дивну записку📃: "Я — член…
❗️Обережно, спойлер! Якщо хочеш вирішити задачу пізніше — не читай текст далі!

Коротка відповідь: Число автора записки — 4, числа інших учасників: 5, 4, 4, 3, 3.

Пояснення:
Потрібно уважно читати задачу. Усі числа в задачі ВЖЕ збільшені НА секретне число автора. Тобто в клубі не 10 учасників, а
10 - (число автора), так само і діапазон секретних чисел не від 6 до 9, а від 6 - (число автора) до 9 - (число автора). Давайте надалі позначимо число автора, як n для зручності.
Спочатку може здатися, що
n = 2 відмінно підходить, адже тоді учасників 8, в 4 число менше, в 3 число більше, плюс сам автор, це 8 людей. Але насправді якщо число буде 2, то діапазон чисел вийде від 4 до 7 (6 - 2 = 4, 9 - 2 = 7), що неможливо.
Аби зрозуміти в якому діапазоні може бути секретне число, потрібно вивести нерівність.
6 - n <= n <= 9 - n | +n
6 <= 2n <= 9 | :2
3 <= n <= 4.5
Спробуємо використати 3: 6 - 3 = 3, отже 3 — найменше число в діапазоні. За умовою задачі, ще мінімум 3 людини (6 - 3 = 3) мають число менше, за автора. Яке? 2? Відповідно, не підходить.
Спробуємо використати 4:
- Діапазон чисел в такому разі від 6 - 4 = 2 до 9 - 4 = 5.
- Кількість учасників в такому разі 10 - 4 = 6. У 6 - 4 = 2 учасників число менше, ніж у автора, у 5 - 4 = 1 учасника — більше.
- Сума секретних чисел — 27 - 4 = 23.
Рахуємо. Якщо учасників всього 6, у двох число більше, ніж у автора, а у одного менше, то залишається ще 2 людини, в кого число таке саме, як у автора — 4. Тому вже маємо 3 * 4 = 12. У однієї людини число більше, ніж у автора, таке число одне — 5. Тепер маємо 12 + 5 * 1 = 17.
Віднімаємо від суми секретних чисел (23) нашу поточну суму (17) і отримуємо проміжний результат — 6. Відповідно, залишилося 2 людини, в кого число менше, ніж у автора. 6 / 2 = 3. Число 3 входить в діапазон.
Отже, робимо висновок, що учасників у клубі 6, зокрема автор, який має число 4. Інші учасники мають наступні числа (у порядку спадання): 5, 4, 4, 3, 3.
🔥3🤯3👍2
🔥Нове відео на каналі!👨🏻‍💻

Поговоримо про літературу для розробників, для тих, хто починає, і для тих, хто хоче покращити свої скіли!

P.S.: Там є я.🙈🤪

❗️Посилання: https://youtu.be/stIwXoRaYis
🔥7👍3
🔥Усім привіт!

Завершальне відео курсу "Java для початківців". Усередині крутий анонс наступного курсу!👨🏻‍💻

❗️Відео ТУТ.❗️

Усім перемог! 😎
🔥12👏1
💻📩Тобі поставлено задачу.
💡В ході її аналізу стає зрозуміло, що потрібно зробити/використати структуру даних, в яку можна буде додавати елементи і діставати з кінця. Тобто, працює вона за принципом LIFO (last in, first out) – останнім зайшов, першим вийшов. Виконується робота з даною структурою завжди в один потік.

👇🏻Обирай варіант в тесті знизу і давай обговорювати його в коментарях.
👍4
Яку колекцію обрати?
Anonymous Quiz
44%
Stack
18%
Queue
38%
LinkedList
Java Classroom
💻📩Тобі поставлено задачу. 💡В ході її аналізу стає зрозуміло, що потрібно зробити/використати структуру даних, в яку можна буде додавати елементи і діставати з кінця. Тобто, працює вона за принципом LIFO (last in, first out) – останнім зайшов, першим вийшов.…
❓Приклад задачі:
Написати програму, яка на вхід отримує рядок дужок "()[]{}" і має сказати чи правильно вони закриті. Якщо відкриття і закриття послідовне – все добре, якщо дужки закриті не по черзі – неправильно. Дужки можуть бути тільки трьох типів перелічених зверху.

👨🏻‍💻Приклад виконання:
{{()[]}}{} – true;
{([)]} – false (бо дужка ')' закриває квадратну дужку).*

* Правильно буде {()[]} або {([])}.
👍5
Як можна отримати поточні дату та час?
Anonymous Quiz
8%
new LocalDate()
11%
System.currentTimeMillis()
👍5
🙋🏻‍♂️Привіт.

Сьогодні в мережу потрапив пілотний випуск просунутого курсу з Java, канонічне продовження курсу для початківців. У відео більш чіткий план тем, які будуть розглянуті протягом курсу.

❗️Відео ТУТ.❗️

Усім перемог! 😎
🔥12
Java Classroom
🙋🏻‍♂️Привіт. Сьогодні в мережу потрапив пілотний випуск просунутого курсу з Java, канонічне продовження курсу для початківців. У відео більш чіткий план тем, які будуть розглянуті протягом курсу. ❗️Відео ТУТ.❗️ Усім перемог! 😎
🙋🏻‍♂️Привіт.

На даний момент часто проблеми з електропостачанням та доступом до Інтернету.😢 Найближчим часом ця проблема буде вирішена і я зможу знову активно записувати навчальний курс.
Розумію, що пауза і затримка доволі велика, але згодом знову будемо разом: вивчати Java, працювати, сплачувати податки і нищити тих, кого навіть називати на цьому каналі не хочу.

Слава Україні!🇺🇦

Усім перемог! 😎
👍7🔥6👏1🙏1
🔥Усім привіт!

Відео про ArrayList на каналі. На словах пояснюю складність виконання операцій і все наочно показую в презентації.
У наступному відео поговоримо про О велике, які складності операцій бувають і повернемось до ArrayList, аби слова замінити чіткою математикою.
Надалі всі відео про колекції будуть містити складність відповідно до О.

❗️Відео ТУТ.❗️

Усім перемог! 😎
🔥12👍1
🔥Усім привіт!

Сьогодні мій курс було опубліковано на платформі "Київстар ТБ", курс безкоштовний для всіх користувачів. Щодо цього я дав інтерв'ю колегам з ТСН, вийшло дуже круто. Поговорили і про сам курс, і про перспективи Java, і про можливі шляхи розвитку.

📌Інтерв'ю зі мною на ТСН => КЛІК.
📌Курс на Київстар ТБ => КЛАК.

Усім перемог! 😎
👍9🔥5👏3
🙋🏻‍♂️Привіт!

❓Скажи, boolean займає 1 біт чи 8? А може 32?😏

👨🏻‍💻Поки я готую наступне відео (а воно вже майже готове), отримав цікавий коментар щодо розміру boolean в пам'яті.
Тип даних boolean дозволяє нам зберігати true або false, тобто казати що щось істина або брехня. True✔️ та False✖️ можна інтерпретувати в значення 1 та 0. Тобто, може здаватися, що для зберігання даного значення нам потрібен 1 біт, якщо біт заповнений, то 1, якщо ні, то 0. Заповнений — true, ні — false. Все логічно і правильно!

🤨Але що, якщо я скажу, що boolean займає все ж таки 8 біт? А якщо я скажу, що 32 біти?.. Навіщо?..

Документація — посилання на специфікацію Java.

❗️Насправді, якщо у вас на співбесіді запитають про розміри примітивних типів даних в пам'яті, буде правильно відповісти, що для boolean однозначна відповідь невідома, оскільки це залежить від JVM та місця використання цього типу даних.

✅ Масив, що зберігає boolean, для одного елементу виділяє 1 байт (тобто 8 біт).
А ще ось така цитата зі специфікації:
"There are no Java virtual machine instructions solely dedicated to operations on boolean values. Instead, expressions in the Java programming language that operate on boolean values are compiled to use values of the Java virtual machine int data type."
Тобто, якщо перекладати, то:
"Не існує інструкцій JVM, присвячених виключно операціям з логічними значеннями. Натомість вирази на Java, які працюють із boolean, компілюються для використання int."

❗️Висновок: Одна локальна змінна boolean може займати 1 біт, 1 байт (8 біт) або 4 байти (32 біти), залежить від JVM та операції. Зазвичай boolean масив виділяє на 1 елемент 1 байт (8 біт). Під час використання булевих змінних в логічних операціях, для них виділяється 4 байти (32 біти).

🔬У кого є бажання поринути в деталі — СЮДИ.
👍8🔥3
🔥Усім привіт!

Відео про "О" велике вже на каналі. Зрозуміємо в чому полягає суть розрахунку складності алгоритмів. Поговоримо знову про деякі методи ArrayList, але на цей раз з математичної точки зору. O(1), O(n), O(log(n)), O(n*log(n)) та O(n^2) більше не будуть незрозумілими літерами.
У відео також є пояснення бінарного пошуку.😏

❗️Відео ТУТ.❗️

Усім перемог! 😎
👍7🔥3
Мені закинули питання із сьогоднішньої співбесіди. Передаю його вам:

У чому переваги та недоліки об'єктно-орієнтованого програмування (як в Java) перед функціональним та процедурним програмуванням?

#interview #question

Думки та відповіді сюди👇🏻
👍4🤔1
Як зробити метод класу доступним ТІЛЬКИ усередині класу та в нащадках цього класу?
Anonymous Quiz
3%
Позначити його як private final.
21%
Позначити його як private.
69%
Позначити його як protected.
7%
Не вказувати модифікатор доступу.