#вопросы_с_собеседований
Можно ли объявить класс абстрактным, если в нем нет абстрактных членов? Какова может быть цель такого класса?
Да, класс можно объявить абстрактным, даже если он не содержит абстрактных членов. Из-за абстрактности его объект не может быть создан, но сам класс может служить корневым для некоторой иерархии, предоставляя методы, которые могут быть полезны для реализаций.
#вопросы_с_собеседований
Что такое метааннотации?
Аннотации, которые применяются к другим аннотациям. Все аннотации, которые не отмечены @Target
или отмечены им, но содержат константу ANNOTATION_TYPE, также являются мета-аннотациями.
👩💻 Приглашаем вас принять участие в открытом уроке, который посвящён теме «Интернационализация и локализация в приложениях Spring». Вы узнаете, как эффективно реализовать процесс локализации в Spring-приложениях.
Мы рассмотрим работу с классом Locale, использование MessageSource в Spring Boot и без него, способы хранения и смены локали в веб-приложениях, а также локализацию в шаблонах Thymeleaf и сообщений Bean Validation.
Более того, обсудим, почему не стоит локализовывать исключения, и проанализируем исходный код для лучшего понимания процессов.
🗓 25 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.
Программа вебинара:
✔️ Основы локализации в Spring.
✔️ Инициализация и конфигурация MessageSource.
✔️ Управление локалью в веб-приложениях.
✔️ Практические аспекты локализации.
Этот урок будет полезен Java-разработчикам с опытом 1–3 года, а также Kotlin-разработчикам.
🔗 Ссылка на регистрацию:https://otus.pw/RvSi/
🎁 Только в "Черную пятницу", скидки на курс до 15%! Подробности у менеджеров.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Уже завтра собеседование на Middle Java с разработчиком из МТС
20 ноября (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
1. Мария Ядерцова ведущий Java-разработчик в МТС Диджитал и ex. Сбербанк-Технологии будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Мария будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Марии
Что узнаешь на прямом эфире от ШОРТКАТ:
• Чего ждут от кандидатов на Middle позиции в Java-разработке
• Какие вопросы задают на интервью и зачем
• Как подготовиться к собесу, чтобы получить оффер
Это бесплатно? Бесплатно
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqufTvBQ
elastic/elasticsearch ⭐️ 59k
Это распределенная поисковая система на Java с большими возможностями. Поддерживает многопоточность, горизонтально масштабируется. Находится в свободном доступе и используется многими популярными сайтами.
https://github.com/elastic/elasticsearch
#вопросы_с_собеседований
Как поведёт себя коллекция, если вызвать iterator.remove()?
Если вызову iterator.remove()
предшествовал вызов iterator.next()
, то iterator.remove()
удалит элемент коллекции, на который указывает итератор, в противном случае будет выброшено IllegalStateException()
.
⚡️Всероссийский Хакатон ФИЦ 2024
🚀Попробуйте себя в одном из предложенных кейсов:
- Разработка алгоритма трекинга людей в видеопотоке с нескольких камер
- Цифровая карта подземных коммуникаций с использованием Cesium
- Симуляция записи в расписание
- Цифровой сервис для ведения реестра зеленых насаждений города Москвы
- Предсказание необходимого количества средств досмотра
- Система контроля и управления доступом
- Семантический делитель текстов
- Разработка сервиса печати этикеток для производителей одежды
И др. кейсы смотрите на сайте: https://фиц2024.рф/hackathon
Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн.
🏆Призовой фонд: 6 000 000 руб.
🔥Дедлайн регистрации: 26 ноября, 23:59
📅Даты отборочного этапа: 29 ноября - 2 декабря
🦾Даты финала: 3 - 4 декабря
Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon
#реклама
О рекламодателе
Метод before()
Метод before() класса Date проверяет, была ли наша дата раньше той, которую мы передаем в качестве аргумента.
#вопросы_с_собеседований
Какое худшее время работы метода get(key) для ключа, который есть в HashMap?
O(N). Худший случай - это поиск ключа в HashMap
, вырожденного в список по причине совпадения ключей по hashCode()
и для выяснения хранится ли элемент с определённым ключом может потребоваться перебор всего списка.
Но начиная с Java 8, после определенного числа элементов в списке, связный список преобразовывается в красно-черное дерево и сложность выборки, даже в случае плохой хеш-функции, не хуже логарифмической O(log(N)).
👩💻 Открытый урок «Знакомство с виртуальными потоками Java»
🗓 21 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от Otus.
Легковесные потоки были введены во многих языках программирования, таких как Go, Kotlin и другие. Теперь Java догнала другие языки по этой функциональности.
На вебинаре разберем:
✔️что такое виртуальные потоки;
✔️ чем они отличаются от обычных потоков;
✔️в чём плюсы и минусы их использования.
🔗 Ссылка на регистрацию: https://otus.pw/COTVV/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
#вопросы_с_собеседований
Почему хранить пароль предпочтительнее в char[]/byte[], а не в String?
☕️ Строка в виде литерала сразу раскрывает пароль, плюс она всегда хранится в string-пуле
☕️ byte[]/char[] возможно сбросить после использования, и удалить все ссылки на него
👩💻 Открытый урок «Интернационализация и локализация в приложениях Spring»
🗓 25 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.
Узнайте, как эффективно реализовать интернационализацию и локализацию в Spring-приложениях.
На вебинаре разберем:
✔️работу с классом Locale, использование MessageSource в Spring Boot и без него;
✔️ способы хранения и смены локали в веб-приложениях;
✔️ локализацию в шаблонах Thymeleaf и сообщений Bean Validation;
✔️ обсудим, почему не стоит локализовывать исключения;
✔️ проанализируем исходный код для лучшего понимания процессов.
🔗 Ссылка на регистрацию: https://otus.pw/X16gx/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Анализ дампа кучи Java: разбираем на примерах
Всякий раз, когда вы создаете объект, он хранится в области памяти, которая в приложениях для JVM называется «куча». Как вы уже догадались, объем кучи ограничен, и «кто-то» должен хранить объекты в куче. Этот инструмент называется сборщиком мусора (Garbage Collector).
Смотреть статью
Уже применяешь асинхронную архитектуру в работе? Или только думаешь, как её внедрить?
Podlodka Java Crew с 18 по 22 ноября собирает тех, кто знает, как сделать это эффективно!
Пять дней, мощные практические сессии, опытные спикеры:
- "Spring, Micronaut, Quarkus и Helidon — что круче для современного приложения?" Григорий Кошелев и Андрей Когунь — о плюсах и минусах каждого фреймворка💥
- "Проектируем Event Driven-систему с помощью DDD и Event Storming"
Кирилл Ветчинкин поможет понять, как сделать системы масштабируемыми и управляемыми с помощью событий🚀
- "Apache EventMesh: как приготовить Event Mesh"
Павел Бодячевский поможет внедрить Event Mesh в проект🎯
- "Debezium: окно в асинхронный мир данных" Евгений Ефименко покажет, как обрабатывать данные в реальном времени📊
Забирай билет, чтобы перенять опыт профи!🔥
Apache Struts
Apache Struts — фреймворк с открытым исходным кодом для создания Java EE веб-приложений. Struts был создан для того, чтобы чётко разделить модель (бизнес-логику), представление (HTML-страницы) и контроллер (отвечающий за передачу данных от модели к представлению и обратно).
https://github.com/apache/struts
Бесплатный интенсив: Java-разработчик: старт в профессии с нуля.
📆 Когда: 27-28 ноября в 19:00 по мск.
За два дня интенсива в прямом эфире, под руководством опытного Java-разработчика, вы сможете:
✔️ Познакомиться с синтаксисом и основными конструкциями языка Java.
✔️ Написать свой первый проект и определить, подходит ли вам профессия разработчика.
✔️ Создать Telegram-бота с нуля.
✔️ Узнать ответы интересующие вас вопросы.
✔️ Получить доступ к закрытому профессиональному сообществу.
🎁 Подарки для участников
интенсива: гайд «Как заговорить на сленге IT-специалистов», карта компетенций начинающего Java-разработчика и доступ в закрытое сообщество «Старт в Java» от Хекслета!
Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid:LjN8K36fP
#вопросы_с_собеседований
Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...]
Ответ на картинке.
Может ли один блок catch отлавливать сразу несколько исключений?
В Java 7 стала доступна новая языковая конструкция, с помощью которой можно перехватывать несколько исключений одним блоком catch
.
#вопросы_с_собеседований
В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?
Размер массива elementData
представляет собой вместимость (capacity) ArrayList
, которая всегда больше переменной size
- реального количества хранимых элементов. При необходимости вместимость автоматически возрастает.
🔞 Java как секс!
Если зубрить ее только по книжкам, то кроме теории и деградации, ты ничему не научишься
В канале Java, полегче 🥵! ты найдешь лучшие практики написания кода. Действующий тимлид европейского финтеха, самобытно и с долей юмора, делится секретами 🤫:
➖ Гайд по Kafka(причем тут порноактриса Piper Perri)
➖ Roadmap java разработчика на 2025
➖ Самый кринжовый подарок, сделанный девушке, с помощью программирования
➖ Как java крадет твои деньги
➖ Топ 8 ошибок при составлении резюме
➖ Самые сложные алгоритмы на моей практике. Не трать на них время
➖ Chatgpt telegram bot с нуля на java
➖ Миллиард тенге. Самая сложная задача
И это только цветочки. Рекомендую!
В этом канале даже джуны становятся сеньорами 😏
🔈 Подписывайся, это самый простой способ прокачать свои хард-скиллы: @javezka
#вопросы_с_собеседований
Какие существуют unchecked exception?
Наиболее часто встречающиеся: ArithmeticException, ClassCastException, ConcurrentModificationException, IllegalArgumentException, IllegalStateException, IndexOutOfBoundsException, NoSuchElementException, NullPointerException, UnsupportedOperationException.
#вопросы_с_собеседований
Каким образом реализованы методы hashCode() и equals() в классе Object?
Реализация метода Object.equals()
сводится к проверке на равенство двух ссылок(код 1 на картинке).
Реализация метода Object.hashCode()
описана как native
, т.е. определенной не с помощью Java кода и обычно возвращает адрес объекта в памяти(код 2 на картинке).
👩💻 Мечтаете научиться программировать на Java? Пора начинать!
🗓 20 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик» от Otus.
Приходите на открытый урок, где мы шаг за шагом создадим игру «Угадай число» с нуля.
Вы познакомитесь с основами языка, поймете, как изменять код и менять функционал программы, освоите первые блоки, которые нужны для старта.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
Хотите научиться создавать приложения? Узнать, как строятся программы на Java? Этот урок — ваш первый шаг в IT!
🔗 Ссылка на регистрацию: https://otus.pw/rY4d/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как конвертировать ArrayList в массив на Java?
Рассмотрим пример простой программы, которая преобразовывает ArrayList в массив в Java.
Мы используем реализацию метода toArray(T[] a) класса ArrayList, чтобы конвертировать ArrayList в массив на Java. «Под капотом» этого метода используется метод Arrays.copyOf(), чтобы конвертировать ArrayList в Array.
#вопросы_с_собеседований
Как получить коллекцию только для чтения?
При помощи:
• Collections.unmodifiableList(list);
• Collections.unmodifiableSet(set);
• Collections.unmodifiableMap(map).
Эти методы принимают коллекцию в качестве параметра, и возвращают коллекцию только для чтения с теми же элементами внутри.
Объединение двух массивов
Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUtils из Commons Lang.
Подробнее можно ознакомиться здесь.
#вопросы_с_собеседований
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?
✔️Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
✔️Для создания объекта статического вложенного класса объект внешнего класса не требуется.
✔️Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
✔️Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
✔️В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статического такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
Final класс
Нельзя расширять класс, объявленный как final. Проще говоря, никакой класс не может наследоваться от данного.
Прекрасным примером final класса в JDK является String. Первый шаг к созданию неизменяемого класса — пометить его как final, и тогда нельзя будет его расширить.
#вопросы_с_собеседований
Что такое модификаторы доступа?
Модификаторы доступа — это инструмент, при помощи которого можно настроить доступ к классам, методам и переменным.
Бывают следующие модификаторы, упорядоченные в порядке повышения доступа:
1) private — используется для методов, полей и конструкторов. Уровень доступа — только класс, внутри которого он объявлен.
2) package-private(default) — может использоваться для классов. Доступ только в конкретном пакете (package), в котором объявлен класс, метод, переменная, конструктор.
3) protected — такой же доступ, как и package-private + для тех классов, которые наследуются от класса с модификатором protected.
4) public — используется и для классов. Полноценный доступ во всем приложении.
#вопросы_с_собеседований
Какой символ является разделителем при указании пути в файловой системе?
Для различных операционных систем символ разделителя различается. Для Windows это \
, для Linux - /
.
В Java получить разделитель для текущей операционной системы можно через обращение к статическому полю File.separator
.