Java Interview Tasks

Java Interview Tasks

Аудитория: 3 940 подписчиков
Категория: Блоги
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov и https://telega.in/c/java_interview_tasks

Статистика канала

3 940 подписчиков

Последние посты

Java Interview Tasks
🔍 Ответ на вопрос про использование var в Java:Все больше и больше в коде начали использовать var .🤔 Давайте разберем плюсы и минусы его использования.📌 Плюсы var: ✔️ Меньше "визуального шума": избавляет от длинных и громоздких объявлений. ✔️ Удобно при работе с дженериками и вложенными типами: никакого лишнего написания. ✔️ Код читается проще, когда тип очевиден из правой части.Примеры, когда var выглядит отлично:var map = new HashMap<String, List<Long>>();var name = "LinkedIn";var count = 42;⚠️ Минусы var: ❌ Иногда теряется читаемость: особенно, когда возвращаемый тип не очевиден. ❌ Может прятать неожиданные типы, что усложняет отладку. ❌ Не подходит для публичных API / сигнатур, где тип данных должен быть явно указан.Когда var может стать врагом:var data = process(); // Непонятно, что за тип возвращается.var a = someObj.getValue().getAnother().resolve(); // Много уровней вложенности.📌 Мой вывод: var — это отличный инструмент, но важно знать, когда и как его использовать. Лично я применяю var, когда тип очевиден без догадок. Если нужно вчитываться или полагаться на IDE, лучше указать тип явно. Помните, что читаемость важнее краткости! 💡Согласны с таким подходом? Или у вас есть свои мысли? Делитесь в комментариях, подписывайтесь и ставьте лайк! 🤗#Java #var #кодстайл #java10 #java_interview_tasks
861
Java Interview Tasks
🔍 Ответ на задачу про использование BigInteger в Java:❓Что напечатает данный код?🤔 На первый взгляд, можно подумать, что он выведет сумму всех значений, но реальный результат будет 0;Почему так? 🤔 Методы класса BigInteger, как например add(), не изменяют текущее значение объекта, а возвращают новый объект с результатом операции. Таким образом, запись total.add(BigInteger) не изменяет значение total. Поэтому для получения суммы необходимо сделать следующее:total = total.add(oneThousand);total = total.add(twoThousand);total = total.add(threeThousand);total = total.add(fourThousand);Теперь всё должно работать как положено! 💡 Не забывайте про это, когда работаете с неизменяемыми объектами, такими как BigInteger.Если вам понравился этот разбор, поставьте лайк, подпишитесь и оставьте комментарий! 🤗#Java #BigInteger #иммутабельность #сумма #java_interview_tasks
1 230
Java Interview Tasks
Превью публикации
Что напечатает код?
1 090
Java Interview Tasks
Ответ на задачу про квадрат 20 процентов:20% * 20% = 0.2 * 0.2 = 0,04 = 4%
1 030
Java Interview Tasks
🔍 Ответ на задачу про JMM и особенности volatile полейДанная задача подчеркивает одно из потенциально неожиданных поведений модели памяти Java (Java Memory Model - JMM), связанное с volatile полями. Конкретно, она касается разницы между volatile и final в контексте гарантий видимости и порядка инициализации.⚠️ Ключевые моменты volatilе и final:⚡️⚡️volatile гарантирует видимость изменений в переменной между потоками. Однако оно не гарантирует, что инициализация объекта до первой публикации будет выполнена полностью.⚡️⚡️final гарантирует, что значение поля после его инициализации не изменяется, и другие потоки, получившие ссылку на объект, увидят окончательное (полностью инициализированное) состояние этого поля.Проблема рваной публикации:⚠️ Когда объект создается и его ссылка передается (опубликована) другим потокам, инициализация объекта может еще быть не завершена. В этом случае другие потоки могут видеть содержимое объекта в промежуточном состоянии. Это и есть суть "рваной" (racy) публикации.Поведение volatile поля:Если volatile поле объекта не было полностью инициализировано на момент, когда ссылка на объект становится видимой другим потокам, то впоследствии эти потоки могут наблюдать значение по умолчанию (например, 0 для примитивных типов).⚠️ В коде выше делается следующее:Объект Holder создается, и volatile поле x инициализируется в конструкторе.Ссылка на объект публикуется в переменной h, которая не является volatile.Второй поток считывает h и проверяет значение x.Из-за отсутствия синхронизации (например, volatile для h), есть возможность, что thread2 увидит переменную h как не-null, но значение x еще не инициализированное, в результате чего оно может быть равно 0.⚠️⚠️ Чтобы избежать подобных проблем:Используйте final для полей, которые должны быть инициализированы полностью до публикации объекта. Это гарантирует, что другие потоки увидят полностью инициализированный объект.Синхронизируйте публикацию объектов, чтобы гарантировать видимость полной инициализации.Рассмотрите использование volatile для ссылочных переменных, через которые публикуются объекты, чтобы гарантировать полноценную инициализацию до публикации.🎓 Если вы нашли это обсуждение полезным, ставьте лайк, подписывайтесь и делитесь своими мыслями в комментариях!#JavaMemoryModel #VolatileFields #FinalFields #Synchronization #java_interview_tasks
987

Оставить комментарий/отзыв

Рекомендации

Поп на джипе

Поп на джипе

@pop_na_djype
3.7K подписчиков

Дневник священника из тайги Связь @Avepavel86 Взаимореклам не делаю

0pp0зиция

0pp0зиция

@oppozicia_official
3.7K подписчиков

Гоша Лебаров 💎

Гоша Лебаров 💎

@gosha_lebarov
622 подписчиков

ɢᴏʀʏᴜɴᴏᴠᴀ.ᴋs ✨

ɢᴏʀʏᴜɴᴏᴠᴀ.ᴋs ✨

@mommys_sofi
3.3K подписчиков

ᴋᴀᴩинᴀ|ʍоᴧодᴀя ᴍᴏᴍᴍʏ ʟɪꜰᴇsᴛʏʟᴇ|обзоᴩы • ʍᴀʍᴀ ᴄоɸийᴋи (1ᴦ 4ʍ) 👼🏻 • ᴩᴇцᴇᴨᴛы • обзоᴩы и ᴩᴀᴄᴨᴀᴋоʙᴋи 🎬 • нᴀɯи буд...

vvinterorange

vvinterorange

@vvinterorange
3.9K подписчиков

хех. реклама, заказы, контакты: @vvcommspiar правила: https://t.me/vvinterorange/541

werivix🇺🇸

werivix🇺🇸

@werivixx
3.7K подписчиков

мой менеджер -@veronikkaa_m

Cultural simulacrum

Cultural simulacrum

@culturalsimulacrum
4.2K подписчиков

Живу в Париже. Пишу про всякое культурное и не очень BA in Culture Studies (2023) MA in Management of the Ar...

Настёна тут ❤️

Настёна тут ❤️

@my_life_Anastasiaa
4.1K подписчиков

Привет всем 💜 Тут немного о находках ✅ вдохновениях ✅ уюте ✅ общение 💗 а ещё делюсь полезными скидками 😉 Pi...

RedGastroMap

RedGastroMap

@redgastromap
3.7K подписчиков

Я работаю в ресторанах #ekb, в свободное время исследую город и пишу о ресторанной культуре 🥠🚏🎧 Контакт для...

Ира, не бесись

Ира, не бесись

@podzhigai
3.7K подписчиков

Мой личный бложек про всё подряд, наполненный, безусловно, умными мыслями, приколами и моим самым важным мнени...