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

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

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

Флуд: https://t.me/+RTFFjWxtO8sxYzJi
Усі тести: @java_classroom_quizzes
Download Telegram
Який з вказаних класів імутабельний (незмінний)?
Anonymous Quiz
76%
String
18%
StringBuilder
6%
StringBuffer
👍1
👆🏻Двох останніх питань на співбесідах, зазвичай, не буває, але коли інтерв'юер питає вас про "Рядки в Java", "String" або immutable-класи, дуже важливо розповідати одразу всю картину, яка включає в себе і String, і StringBuilder/StringBuffer. Не зайвим сказати, що застосовувати StringBuffer в однопотокових програмах не потрібнo, це може зробити програму значно повільнішою.
🤷🏻‍♂️Якщо інтерв'юер починає задавати додаткові питання, швидше за все, він вважатиме це недоліком у відповіді.
👨🏻‍💻Звісно, за виключенням випадків, коли з одного питання просто випливає інше.

❗️До речі, цікава ваша думка. Припустимо, у нас є цикл, який робить 1000 кроків і пустий рядок str. З кожною ітерацією цикл додає до рядка слово "hello". Що буде швидше, написати str += "hello" (тобто застосувати конкатенацію) АБО використати StringBuilder та застосовувати метод append("hello")? Не перевіряйте одразу в IDE!
👍7
👍2😁1
Що виведе ця програма?
Anonymous Quiz
19%
%041
33%
00001
33%
0001
15%
1
Java Classroom
👆🏻Двох останніх питань на співбесідах, зазвичай, не буває, але коли інтерв'юер питає вас про "Рядки в Java", "String" або immutable-класи, дуже важливо розповідати одразу всю картину, яка включає в себе і String, і StringBuilder/StringBuffer. Не зайвим сказати…
✅StringBuilder — швидше!

👨🏻‍💻Виконання такої примітивної програми з використанням StringBuilder займає в середньому (на основі 5 тестів) 0.1 секунду, тобто близько 100 мс. Виконання цієї ж програми з використанням конкатенації рядків займає в 2 рази більше часу — 190-210 мс.

❗️Відповідно до рекомендацій SonarLint, якщо мутація рядка відбувається в циклі, його обов'язково потрібно переводити в StringBuilder, використовувати метод append() замість конкатенації, і повертати рядок за допомогою метода toString() на об'єкт білдера.

Детальніше
👍7
😳🤯Я ШОКОВАНИЙ! Неймовірна задача, яку мені відправили із сьогоднішньої співбесіди.
🙏🏻Сподіваюсь ви зараз у безпеці. Бережіть себе і читайте тільки у тому випадку, якщо все спокійно!

Одного ранку у своїй шафці в школі Віктор виявив дивну записку📃:
"Я — член секретного клубу. У кожного з нас є спеціальне число, між 6 і 9 включно, і перш ніж записати будь-яке число, ми арифметично додаємо своє секретне число до того, яке записуємо.
У нашому клубі 10 учасників, і у 6 з них число менше, ніж у мене, а у 5 більше. Сума наших секретних чисел - 27.
Якщо ти зможеш назвати мені моє число та числа всіх інших учасників клубу, ми приймемо тебе як свого. Успіхів!"

👨🏻‍💻P.S.: Одразу зверніть увагу, що до будь-якого числа автор записки додав своє секретне число. Тобто кількість членів клубу, сума секретних чисел тощо — збільшені.

Ідеї/Відповіді пишіть сюди. Давайте обговорювати!👇🏻
🤯4
Що таке Серіалізація (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