Java Guru 🤓
13.2K subscribers
883 photos
16 videos
748 links
Канал с вопросами и задачами с собеседований!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrSQZ

Мы на бирже: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Какой результат выведет следующая программа?
Anonymous Quiz
62%
Equal
38%
Not equal
👍24🔥41🎉1
🦾 Освойте востребованный фреймворк всего за 5 месяцев и создавайте приложения на Java

🔥🔝 Знание Spring Framework – один из самых востребованных скиллов для разработчика, многие крупные проекты ищут именно таких специалистов на самые желанные офферы.

5️⃣ Вместе с OTUS вы можете освоить Spring всего за 5 месяцев в рамках курса «Разработчик на Spring Framework»!

Что даст вам этот курс:
- Умение эффективно работать в проектах, где есть Spring
✔️ Знание современных возможностей Spring
✔️ Понимание, как создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке
✔️ Умение быстро проходить путь от идеи до production-grade
✔️ Владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5)

🎫 Курс доступен для приобретения в рассрочку!

Пройдите бесплатное вступительное тестирование прямо сейчас и узнайте, готовы ли вы стать студентом!

➡️ ПРОЙТИ ТЕСТ: https://otus.pw/R9PD/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
Какова структура Java Collections Framework? Почему Map не Collection?

Collection – хранилище отдельных значений, Map – хранилище ключ-значение. Отсюда разные методы этих интерфейсов. Если проще, разные сигнатуры методов put и add.

Collection в свою очередь делится на три основных группы, и соответствующих им интерфейса:
🔘 List – упорядоченные списки с возможностью содержания дубликатов и доступа по индексу (random access);
🔘 Queue – обычно FIFO-коллекции, предполагает добавление/удаление элементов с края. Интерфейс-наследник Deque – двусвязная очередь;
🔘 Set – не обязательно упорядоченный набор уникальных (с точки зрения equals) значений;

HashMap можно привести к виду Collection вызвав например keySet(), entrySet() или values().
👍20🔥3🥴1
Какой результат выведет следующая программа?
👍15🥱3🎉1
Какой результат выведет следующая программа?
Anonymous Quiz
62%
A is equal to Infinity
15%
A is equal to NaN
14%
Ошибку при выполнении
9%
Ошибку компиляции
👍19🎉5
🔥 Хардовый тест для разработчиков 🔥

📕 Ответьте на 9 вопросов за 20 мин и проверьте, насколько вы готовы к обучению на курсе - «Архитектура и шаблоны проектирования»

💻 Научитесь применять шаблоны проектирования в разработках! Благодаря этому навыку вы сможете писать чистый код, экономить время на разработке и быстро «пересаживаться» на любой язык программирования.

🏵 Ждем всех, кто хочет вырасти до Middle+ разработчика или архитектора ПО!

👉 ПРОЙТИ ТЕСТ https://otus.pw/dgYH/

💣
Пройдете тест, получите демо-ролик о занятиях на курсе и Welcome-скидку.

Также вам откроется доступ к открытым урокам курса.

Реклама. Информация о рекламодателе на сайте www.otus.ru
👍6🔥2
Как работает HashMap?

Один из популярнейших вопросов, потому что содержит много нюансов. Лучше всего подготовиться к нему помогает чтение исходного кода HashMap.

Нюансы которые стоит повторить и запомнить:
🔘 Общий принцип: внутренний массив table, содержащий бакеты (корзины) – списки элементов с одинаковыми пересчитанными хэш-суммами;
🔘 Пересчет хэш-суммы для умещения int индексов в capacity ячейках table;
🔘 rehash – удвоение размера table при достижении threshold (capacity*loadFactor) занятых бакетов;
🔘 Невозможность сжать однажды раздувшийся table;
🔘 Два способа разрешения коллизий: используемый в HashMap метод цепочек и альтернатива – открытая адресация;
🔘 Варианты для многопоточного использования: пересинхронизированная Hashtable и умная ConcurrentHashMap;
🔘 Оптимизация Java 8: превращение списка в бакете в дерево при достижении 8 элементов – при большом количестве коллизий скорость доступа растет с O(n) до O(log(n));
🔘 Явное использование бакета 0 для ключа null;
🔘 Связь с HashSet – HashMap, в котором используются только ключи;
🔘 Нет гарантий порядка элементов;

Обсуждая этот вопрос на интервью вы обязательно затронете особенности методов equals/hashCode. Возможно придется поговорить об альтернативных хранилищах ключ-значение – TreeMap, LinkedHashMap.
👍24🔥4
Бесплатный практический вебинар — Java: с чего начать карьеру в программировании?

Когда: 26 октября в 19:00 по мск.

Расскажем за 2 часа, как освоить базовые навыки программирования на Java, найти удаленную работу и расти в профессии.

На практике познакомимся с синтаксисом языка и напишем программу, которую часто дают новичкам на техническом интервью.

🎁 Всем, кто зарегистрировался — Гайд «Как заговорить на сленге IT-специалистов», а каждому участнику — Карта компетенций Java-разработчика.

Погрузитесь в основы Java и задайте вопросы опытному разработчику!

Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid: LjN8KZs2V
👍7🔥1🎉1
Как отсортировать Set/Map?

Для Map можно привести ключи/значения к виду Collection, переложить в новый List и отсортировать с помощью Collections.sort. То же делается с Set. Этот метод конечно же неэффективный, так как потребует полного копирования содержимого.

Эффективный способ – хранить данные уже отсортированными. Для таких реализаций созданы интерфейсы-наследники SortedSet и SortedMap.

Реализации SortedSet дают линейный порядок множества. Элементы упорядочены по возрастанию. Порядок либо натуральный (элементы реализуют интерфейс Comparable), либо его определяет переданный в конструктор Comparator.
Этот интерфейс добавляет методы получения подмножества от указанного элемента (tailSet), до элемента (headSet), и между двумя (subSet). Подмножество включает нижнюю границу, не включает верхнюю.

SortedSet расширяется интерфейсом NavigableSet для итерации по порядку, получения ближайшего снизу (floor), сверху (ceiling), большего (higher) и меньшего (lower) заданному элемента.

Все те же правила применяются к элементам SortedMap/NavigableMap относительно их ключей.

Основными реализациями являются TreeSet и TreeMap. Внутри это самобалансирующиеся красно-чёрные деревья. Их структура и способ балансировки – вопрос достойный отдельного поста. Другая любопытная реализация из java.util.concurrent – ConcurrentSkipListMap.
👍12🔥2
В OTUS продолжается набор в группу курса "Kotlin Backend Developer Professional".

🔥Старт 25.10.2023 г.

Ознакомьтесь с преимуществами программы и успейте пройти вступительное тестирование для того, чтобы попасть в группу по специальной цене

Вы прикоснетесь к большому числу инструментов разработки современных, гибких, высокопроизводительных серверных приложений на языке Kotlin.

За время обучения преподаватели на вебинарах в качестве примера разработают проект маркетплейса от идеи и постановки задачи до конечного решения.

Вам будет предложено выполнить собственный проект на выбор, в котором вы сконцентрируетесь на углубленном изучении некоторых инструментов и на практике овладеете навыками работы в жестких условиях экстремальных проектов.

🔥ПРОЙТИ ТЕСТ и получить бонус https://otus.pw/2NC6/

При поступлении в группу возможны разные способы оплаты и рассрочка платежа

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KNoWD
👍5
Какой результат выведет следующая программа?
👍19
Какой результат выведет следующая программа?
Anonymous Quiz
30%
0
50%
100
4%
200
16%
Ошибку компиляции
👍2522🎉1
🔥 Как работать с аспектами в Java и Spring?

Узнайте всего за пару часов на бесплатном открытом уроке от OTUS.

На эфире:

- Выясним, что такое аспекты.
- Разберемся, как работают аспекты в Spring.
- Узнаем, что нужно и что не нужно писать на аспектах.

📢📢 Занятие пройдёт 2 ноября в 20:00 мск и будет приурочено к старту курса «Разработчик на Spring Framework».

🎫 После урока вы сможете приобрести полный курс в рассрочку.

Это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени.

➡️ Регистрируйтесь на мероприятия прямо сейчас: https://otus.pw/5CJb/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Как создать immutable-коллекцию?

В Collections Framework имеется набор методов Collections.unmodifiable*() для различных типов коллекций. Такой метод вернет read-only обертку над переданной коллекцией. Так же как с Collections.synchronized*(), внутри используется не копия, а оригинальная коллекция.

Другой менее очевидный способ – метод Collections.empty*(). Он возвращает немодифицируемую пустую коллекцию. Попытка добавить элемент как и в случае unmodifiable приведет к UnsupportedOperationException.
👍10🔥1
Предскажите результат.
👍12😢4🔥1🎉1
😱 Вредные советы для Java разработчиков

Все мы пишем много кода и слышим много советов о том, как это делать лучше. Но как же это надоело, хочу дать вам советы, как сделать код, который сложно прочитать и, следовательно, сложно сопровождать.

В статье мы научимся:
✔️ как тратить своё время и время коллег впустую;
✔️ стать незаменимым, так как больше в вашем коде никто не разберется;
✔️заслужить всеобщую ненависть.

💡 Читайте вредные советы от Отус и не пытайтесь это повторить!

А если хотите прокачать свои навыки, приходите на наш авторский курс "Java Developer. Professional" и становитесь экспертом в своей области!

📌Курс рассчитан на программистов с опытом, и чтобы понять достаточно ли у вас навыков для обучения, пройдите небольшой тест из 20 вопросов: https://otus.pw/kbhq/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Какими коллекциями пользоваться в многопоточной среде?

Первый вариант – превратить в синхронизированную обычную коллекцию, вызвав соответствующий ее типу метод Collections.synchronized*(). Самый общий и самый примитивный способ, создает обертку с синхронизацией всех операций с помощью synchronized.

Если работа с коллекцией состоит в основном из чтения, лучшая в плане производительности альтернатива – CopyOnWriteArrayList, и содержащий его в реализации CopyOnWriteArraySet. Потокобезопасность достигается копированием внутреннего массива при любой модификации, оригинальный массив остается immutable. Program order достигается модификатором volatile на внутреннем массиве.

Третий вариант – использование Concurrent-коллекций:
🔘 Неблокирующие хэш-таблицы ConcurrentSkipListMap, ConcurrentHashMap и ConcurrentSkipListSet (хэш-таблица в основе реализации)
🔘 Неблокирующие очереди ConcurrentLinkedQueue и ConcurrentLinkedDeque
🔘 Большой набор различных блокирующих очередей
👍13🔥21
🎓 Осввойте одну из самых востребованных онлайн профессий за 2 месяца и получите помощь с трудоустройством!

Станьте участником федерального проекта "Содействие занятости" - цель которого помочь гражданам бесплатно освоить новую или сменить действующую профессию.

Открыт набор на бесплатное онлайн-обучение от ТГУ по программе: "Web-программист".
*ТГУ входит в 100 сильнейших вузов мира и Топ-5 России.

Узнайте подробнее и подайте заявку:
https://tglink.io/e6c28dfcb8d7

Обучение с проектом «Содействие занятости» это:
🔸 Полностью бесплатное онлайн-обучение
🔸 Более 65 000 выпускников, 75% из которых трудоустроены
🔸 Обучение по 2–3 часа в день в удобное для вас время;
🔸 Документ об образовании — подтвердит ваши навыки и компетенции;
🔸 Помощь с трудоустройством после обучения.

Количество мест на бесплатное обучение ограничено, спешите подать заявку.

Реклама. ООО "АДИ ГРУПП". ИНН 7017283529. erid: LjN8K5Khg
👍5
Какой результат выведет следующая программа?
👍9🔥2