Який з вказаних класів імутабельний (незмінний)?
Anonymous Quiz
76%
String
18%
StringBuilder
6%
StringBuffer
👍1
👆🏻Двох останніх питань на співбесідах, зазвичай, не буває, але коли інтерв'юер питає вас про "Рядки в Java", "String" або immutable-класи, дуже важливо розповідати одразу всю картину, яка включає в себе і
🤷🏻♂️Якщо інтерв'юер починає задавати додаткові питання, швидше за все, він вважатиме це недоліком у відповіді.
👨🏻💻Звісно, за виключенням випадків, коли з одного питання просто випливає інше.
❗️До речі, цікава ваша думка. Припустимо, у нас є цикл, який робить 1000 кроків і пустий рядок str. З кожною ітерацією цикл додає до рядка слово "hello". Що буде швидше, написати
String, і StringBuilder/StringBuffer. Не зайвим сказати, що застосовувати StringBuffer в однопотокових програмах не потрібнo, це може зробити програму значно повільнішою. 🤷🏻♂️Якщо інтерв'юер починає задавати додаткові питання, швидше за все, він вважатиме це недоліком у відповіді.
👨🏻💻Звісно, за виключенням випадків, коли з одного питання просто випливає інше.
❗️До речі, цікава ваша думка. Припустимо, у нас є цикл, який робить 1000 кроків і пустий рядок str. З кожною ітерацією цикл додає до рядка слово "hello". Що буде швидше, написати
str += "hello" (тобто застосувати конкатенацію) АБО використати StringBuilder та застосовувати метод append("hello")? Не перевіряйте одразу в IDE!👍7
Java Classroom
👆🏻Двох останніх питань на співбесідах, зазвичай, не буває, але коли інтерв'юер питає вас про "Рядки в Java", "String" або immutable-класи, дуже важливо розповідати одразу всю картину, яка включає в себе і String, і StringBuilder/StringBuffer. Не зайвим сказати…
✅StringBuilder — швидше!
👨🏻💻Виконання такої примітивної програми з використанням
❗️Відповідно до рекомендацій SonarLint, якщо мутація рядка відбувається в циклі, його обов'язково потрібно переводити в StringBuilder, використовувати метод append() замість конкатенації, і повертати рядок за допомогою метода toString() на об'єкт білдера.
Детальніше
👨🏻💻Виконання такої примітивної програми з використанням
StringBuilder займає в середньому (на основі 5 тестів) 0.1 секунду, тобто близько 100 мс. Виконання цієї ж програми з використанням конкатенації рядків займає в 2 рази більше часу — 190-210 мс.❗️Відповідно до рекомендацій SonarLint, якщо мутація рядка відбувається в циклі, його обов'язково потрібно переводити в StringBuilder, використовувати метод append() замість конкатенації, і повертати рядок за допомогою метода toString() на об'єкт білдера.
Детальніше
👍7
😳🤯Я ШОКОВАНИЙ! Неймовірна задача, яку мені відправили із сьогоднішньої співбесіди.
🙏🏻Сподіваюсь ви зараз у безпеці. Бережіть себе і читайте тільки у тому випадку, якщо все спокійно!
Одного ранку у своїй шафці в школі Віктор виявив дивну записку📃:
"Я — член секретного клубу. У кожного з нас є спеціальне число, між 6 і 9 включно, і перш ніж записати будь-яке число, ми арифметично додаємо своє секретне число до того, яке записуємо.
У нашому клубі 10 учасників, і у 6 з них число менше, ніж у мене, а у 5 більше. Сума наших секретних чисел - 27.
Якщо ти зможеш назвати мені моє число та числа всіх інших учасників клубу, ми приймемо тебе як свого. Успіхів!"
👨🏻💻P.S.: Одразу зверніть увагу, що до будь-якого числа автор записки додав своє секретне число. Тобто кількість членів клубу, сума секретних чисел тощо — збільшені.
Ідеї/Відповіді пишіть сюди. Давайте обговорювати!👇🏻
🙏🏻Сподіваюсь ви зараз у безпеці. Бережіть себе і читайте тільки у тому випадку, якщо все спокійно!
Одного ранку у своїй шафці в школі Віктор виявив дивну записку📃:
"Я — член секретного клубу. У кожного з нас є спеціальне число, між 6 і 9 включно, і перш ніж записати будь-яке число, ми арифметично додаємо своє секретне число до того, яке записуємо.
У нашому клубі 10 учасників, і у 6 з них число менше, ніж у мене, а у 5 більше. Сума наших секретних чисел - 27.
Якщо ти зможеш назвати мені моє число та числа всіх інших учасників клубу, ми приймемо тебе як свого. Успіхів!"
👨🏻💻P.S.: Одразу зверніть увагу, що до будь-якого числа автор записки додав своє секретне число. Тобто кількість членів клубу, сума секретних чисел тощо — збільшені.
Ідеї/Відповіді пишіть сюди. Давайте обговорювати!👇🏻
🤯4
Java Classroom
😳🤯Я ШОКОВАНИЙ! Неймовірна задача, яку мені відправили із сьогоднішньої співбесіди. 🙏🏻Сподіваюсь ви зараз у безпеці. Бережіть себе і читайте тільки у тому випадку, якщо все спокійно! Одного ранку у своїй шафці в школі Віктор виявив дивну записку📃: "Я — член…
✅В коментарях знайшли рішення!
👍3🔥3
Що таке Серіалізація (
Пиши сюди👇🏻
Serialization), як вона реалізується в Java?Пиши сюди👇🏻
👍4
Яке ключове слово потрібно застосувати до поля, аби воно було пропущено під час серіалізації?
Anonymous Quiz
9%
static
51%
transient
18%
volatile
6%
final
16%
Жодне з перелічених.
Java Classroom
Питання зі співбесіди з відкритою відповіддю: Відмінності String, StringBuilder, StringBuffer. #interview #question Пиши сюди👇🏻
✅Правильна відповідь:
#interview #answer
String — фінальний імутабельний клас, який використовується в Java для представлення рядків. Відповідно, успадкувати клас або змінити об'єкт — неможливо. Будь-яке створення нового рядка, його оновлення шляхом конкатенації — створює НОВИЙ об'єкт з новим значенням. Об'єкт класу String зберігається в String Pool.StringBuilder — фінальний мутабельний клас, який дозволяє працювати з масивом символьних даних для збільшення ефективності роботи зі String, Імпортувати його в клас для застосування не потрібно. Він застосовується, коли потрібно багато змінювати значення рядка для того, аби не генерувати зайве сміття в пам'яті.StringBuffer — аналогічний до StringBuilder фінальний мутабельний клас, але потокобезпечний, тобто кожен метод в ньому — синхронізований. Його необхідно використовувати в багатопотокових програмах, але синхронізація робить "Buffer" значно повільнішим, тому використовувати його завжди не потрібно.#interview #answer
🔥5👍3
Java Classroom
😳🤯Я ШОКОВАНИЙ! Неймовірна задача, яку мені відправили із сьогоднішньої співбесіди. 🙏🏻Сподіваюсь ви зараз у безпеці. Бережіть себе і читайте тільки у тому випадку, якщо все спокійно! Одного ранку у своїй шафці в школі Віктор виявив дивну записку📃: "Я — член…
❗️Обережно, спойлер! Якщо хочеш вирішити задачу пізніше — не читай текст далі!
Коротка відповідь: Число автора записки — 4, числа інших учасників: 5, 4, 4, 3, 3.
Пояснення:
Потрібно уважно читати задачу. Усі числа в задачі ВЖЕ збільшені НА секретне число автора. Тобто в клубі не 10 учасників, а , так само і діапазон секретних чисел не від 6 до 9, а від до . Давайте надалі позначимо число автора, як для зручності.
Спочатку може здатися, що відмінно підходить, адже тоді учасників 8, в 4 число менше, в 3 число більше, плюс сам автор, це 8 людей. Але насправді якщо число буде 2, то діапазон чисел вийде від 4 до 7 (6 - 2 = 4, 9 - 2 = 7), що неможливо.
Аби зрозуміти в якому діапазоні може бути секретне число, потрібно вивести нерівність.
Спробуємо використати 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.
Пояснення:
Потрібно уважно читати задачу. Усі числа в задачі ВЖЕ збільшені НА секретне число автора. Тобто в клубі не 10 учасників, а
10 - (число автора)6 - (число автора)9 - (число автора)nСпочатку може здатися, що
n = 2Аби зрозуміти в якому діапазоні може бути секретне число, потрібно вивести нерівність.
6 - n <= n <= 9 - n | +n
6 <= 2n <= 9 | :2
3 <= n <= 4.5
Спробуємо використати 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
Поговоримо про літературу для розробників, для тих, хто починає, і для тих, хто хоче покращити свої скіли!
P.S.: Там є я.🙈🤪
❗️Посилання: https://youtu.be/stIwXoRaYis
🔥7👍3
🔥Усім привіт!
Завершальне відео курсу "Java для початківців". Усередині крутий анонс наступного курсу!👨🏻💻
❗️Відео ТУТ.❗️
Усім перемог! 😎
Завершальне відео курсу "Java для початківців". Усередині крутий анонс наступного курсу!👨🏻💻
❗️Відео ТУТ.❗️
Усім перемог! 😎
🔥12👏1
💻📩Тобі поставлено задачу.
💡В ході її аналізу стає зрозуміло, що потрібно зробити/використати структуру даних, в яку можна буде додавати елементи і діставати з кінця. Тобто, працює вона за принципом LIFO (last in, first out) – останнім зайшов, першим вийшов. Виконується робота з даною структурою завжди в один потік.
👇🏻Обирай варіант в тесті знизу і давай обговорювати його в коментарях.
💡В ході її аналізу стає зрозуміло, що потрібно зробити/використати структуру даних, в яку можна буде додавати елементи і діставати з кінця. Тобто, працює вона за принципом LIFO (last in, first out) – останнім зайшов, першим вийшов. Виконується робота з даною структурою завжди в один потік.
👇🏻Обирай варіант в тесті знизу і давай обговорювати його в коментарях.
👍4
Java Classroom
💻📩Тобі поставлено задачу. 💡В ході її аналізу стає зрозуміло, що потрібно зробити/використати структуру даних, в яку можна буде додавати елементи і діставати з кінця. Тобто, працює вона за принципом LIFO (last in, first out) – останнім зайшов, першим вийшов.…
❓Приклад задачі:
Написати програму, яка на вхід отримує рядок дужок
👨🏻💻Приклад виконання:
* Правильно буде
Написати програму, яка на вхід отримує рядок дужок
"()[]{}" і має сказати чи правильно вони закриті. Якщо відкриття і закриття послідовне – все добре, якщо дужки закриті не по черзі – неправильно. Дужки можуть бути тільки трьох типів перелічених зверху. 👨🏻💻Приклад виконання:
{{()[]}}{} – true;{([)]} – false (бо дужка ')' закриває квадратну дужку).** Правильно буде
{()[]} або {([])}.👍5
Як можна отримати поточні дату та час?
Anonymous Quiz
8%
new LocalDate()
68%
13%
11%
System.currentTimeMillis()
👍5
🙋🏻♂️Привіт.
Сьогодні в мережу потрапив пілотний випуск просунутого курсу з Java, канонічне продовження курсу для початківців. У відео більш чіткий план тем, які будуть розглянуті протягом курсу.
❗️Відео ТУТ.❗️
Усім перемог! 😎
Сьогодні в мережу потрапив пілотний випуск просунутого курсу з Java, канонічне продовження курсу для початківців. У відео більш чіткий план тем, які будуть розглянуті протягом курсу.
❗️Відео ТУТ.❗️
Усім перемог! 😎
🔥12
Java Classroom
🙋🏻♂️Привіт. Сьогодні в мережу потрапив пілотний випуск просунутого курсу з Java, канонічне продовження курсу для початківців. У відео більш чіткий план тем, які будуть розглянуті протягом курсу. ❗️Відео ТУТ.❗️ Усім перемог! 😎
🙋🏻♂️Привіт.
На даний момент часто проблеми з електропостачанням та доступом до Інтернету.😢 Найближчим часом ця проблема буде вирішена і я зможу знову активно записувати навчальний курс.
Розумію, що пауза і затримка доволі велика, але згодом знову будемо разом: вивчати Java, працювати, сплачувати податки і нищити тих, кого навіть називати на цьому каналі не хочу.
Слава Україні!🇺🇦
Усім перемог! 😎
На даний момент часто проблеми з електропостачанням та доступом до Інтернету.😢 Найближчим часом ця проблема буде вирішена і я зможу знову активно записувати навчальний курс.
Розумію, що пауза і затримка доволі велика, але згодом знову будемо разом: вивчати Java, працювати, сплачувати податки і нищити тих, кого навіть називати на цьому каналі не хочу.
Слава Україні!🇺🇦
Усім перемог! 😎
👍7🔥6👏1🙏1
🔥Усім привіт!
Відео про ArrayList на каналі. На словах пояснюю складність виконання операцій і все наочно показую в презентації.
У наступному відео поговоримо про О велике, які складності операцій бувають і повернемось до ArrayList, аби слова замінити чіткою математикою.
Надалі всі відео про колекції будуть містити складність відповідно до О.
❗️Відео ТУТ.❗️
Усім перемог! 😎
Відео про ArrayList на каналі. На словах пояснюю складність виконання операцій і все наочно показую в презентації.
У наступному відео поговоримо про О велике, які складності операцій бувають і повернемось до ArrayList, аби слова замінити чіткою математикою.
Надалі всі відео про колекції будуть містити складність відповідно до О.
❗️Відео ТУТ.❗️
Усім перемог! 😎
🔥12👍1