Изучаем Java. По вопросам сотрудничества: @seniorvladislav
#вопросы_с_собеседований
Что значит «усыпить» поток?
Это значит приостановить его на определенный промежуток времени, вызвав в ходе его выполнения статический метод Thread.sleep() и передав в качестве параметра необходимое количество времени в миллисекундах. До истечения этого времени поток может быть выведен из состояния ожидания вызовом interrupt() с выбрасыванием InterruptedException.
#Вакансия #java #рекомендация #москва #удаленка #developer #рефералка
Вакансия: Java разработчик /Java Developer
Локация: удаленка
Занятость: Full time
Есть реферальная программа.
В аутсорс компанию ищу на проект #Java разработчика,опыт от 4 лет, 3 проекта в портфеле.
Знания: Java 8/11 базовая , HTTP, REST, JSON, SQL базовый, Spring, Spring Boot базовый, XML, SOAP, WebServices, PostgreSQL, JDBC / JPA / Hibernate, Docker
Полное описание вакансии: https://hh.ru/vacancy/101363221?hhtmFrom=employer_vacancy_responses
по всем вопросам в личку @YourBannyRoadIL
⁉️ Открытый урок «Spring - разбор (не)стандартных вопросов интервью»
🗓 6 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.
На вебинаре разберем:
✔️какие вопросы могут встретиться на интервью по теме разработки на Spring Framework
✔️ а так же разберем ровно тот объем информации, который необходим для того, чтобы дать на них развернутый, комплексный ответ.
🔗 Ссылка на регистрацию: https://otus.pw/JFWP/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как устроен HashMap?
HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент.
Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.
#вопросы_с_собеседований
Что вы подразумеваете под статическим блоком в Java?
Статический блок в Java используется для инициализации статических переменных класса. Он выполняется только один раз: при первой загрузке класса в память.
#вопросы_с_собеседований
Можем ли мы объявить метод как final в интерфейсе?
Нет, мы не можем объявить метод как final, потому что все методы в интерфейсе абстрактны, поэтому он должен быть реализован подклассом, а метод final не может быть переопределен.
Метод Character.isWhitespace()
Метод определяет в Java, является ли указанное значение типа char пустым пространством, которое включает в себя пробел, табуляцию или новую строку.
🎯 Весь фокус на API — решай реальные задачи и побеждай с Платформой API ВТБ!
Когда: 21 октября — 23 ноября 2024
Формат: гибридный (онлайн и офлайн)
Призовой фонд: 2 млн рублей
🔥 Хакатон подойдёт для тебя, если ты:
– Студент или выпускник технического вуза;
– Backend / Frontend-разработчик;
– Аналитик;
– Архитектор;
– Специалист в области ИБ;
– DevRel.
❗️Выбери свой трек:
• Open API. Создание приложений на основе Open Banking API;
• gRPC. Реализация микросервиса, имплементирующего стандарты СТО БР ФАПИ.СЕК с реализацией на протоколе gRPC;
• Единая платформа аутентификации API. Создание новых подходов к мультифакторной аутентификации.
Прими участие в составе команды или индивидуально. Если нет команды — поможем её собрать!
▶️ Регистрация уже открыта! Подай заявку до 5 ноября, 23:59 МСК по ссылке.
⁉️Хотите повысить свою квалификацию в Java-разработке?
👩💻 Инвестируйте в успех своей карьеры прямо сейчас! На курсе «Java Developer. Professional» вы получите:
✔️ знание актуального стека технологий;
✔️ 96 часов практической работы с детальным разбором технологий изнутри;
✔️ понимание основ функционирования JVM (сборка мусора, byteCode);
✔️ освоение приемов применения многопоточности;
✔️ практику решения сложных задач с подробным код-ревью от экспертных Java-разработчиков;
✔️ расширение возможностей использования языка Java;
- умение использовать современные фреймворки: Spring WebFlux, Kafka, реактивный Postgres, Kubernetes.
Вы получите инструменты и знания, которые помогут вам писать код быстрее и чище. Все практические навыки вы сможете незамедлительно применять в своей работе.
Готовы прокачать свою востребованность?
➡️ Пройдите короткий тест прямо сейчас, чтобы получить специальную цену на обучение: https://otus.pw/QpOG/
🎁 А еще приятный бонус: до конца октября действует скидка 10% на обучение.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Шаблон проектирования: Chain of Responsibility
Данная статья будет полезна начинающим Java разработчиком понять зачем нужен шаблон проектирования «Цепочка ответственности» и как его можно использовать на примерах.
Итак начнем с самого начала. Основная суть данного шаблона: связывание объектов‑получателей в цепочку и передача запроса по ней.
Смотреть статью
Может ли имя класса не совпадать с именем файла?
Компилятор требует, чтобы в .java файле был не больше чем один публичный класс верхнего уровня, и чтобы его название совпадало с названием файла. Все специальные символы также должны быть в имени файла.
Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.
Так что ответ – может.
Манипуляции с байт-кодом Java
В этой статье мы разберём, как добавить к файлу класса публичный атрибут. Когда загрузчик классов завершит загрузку модифицированного файла класса, мы увидим то поле, которое добавили вручную.
Смотреть статью
Шпаргалка по Spring для Java Junior уже доступна в бесплатной библиотеке от FAANG School.
Только в течение 24 часов вы можете получить доступ:
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков
Из свежих пополнений – Инструкция по работе с Git (ключевой навык для любого разработчика!)
Библиотека знаний постоянно пополняется, но бесплатный доступ длится всего сутки. Чтобы получить полезные материалы, переходи по ссылке и жми на оранжевую кнопку.
⚙️ Более эффективная работа с коллекциями
Java предоставляет множество мощных инструментов для работы с коллекциями. Одним из них является Collectors.partitioningBy
, который позволяет разделить элементы потока на две группы на основе заданного предиката.
➡️ Эта функция упрощает обработку и классификацию данных.
➡️ Использование Local-Variable Type Inference
✔️ Функция Local-Variable Type Inference позволяет объявлять локальные переменные без явного указания их типа, что делает код более компактным и улучшает его читаемость
#вопросы_с_собеседований
Какие виды ссылок на методы вы знаете?
☕️ ссылки на статические методы;
☕️ ссылки на методы экземпляра;
☕️ ссылки на конструкторы;
☕️ ссылки на обобщенные (шаблонные) методы.
#вопросы_с_собеседований
Что такое Java-конфигурация? Как она применяется?
Чтобы в Spring создать класс с конфигурацией на основе Java-кода, нужно аннотировать его с помощью@Configuration
. Этот класс будет содержать фабричные методы для создания бинов в контейнере. Данные методы должны быть аннотированы аннотацией @Bean
. Класс с конфигурацией поместит в контейнер экземпляр класса DataSource
. Потом его можно будет использовать при доступе к базе данных.
Получение координат курсора
Чтобы фиксировать события мыши, вам необходимо реализовать интерфейс MouseMotionListener. Когда курсор попадает в определенную область, срабатывает обработчик события mouseMoved, из которого вы можете получить точные координаты (используя Swing для UI).
Метод Iterable.forEach
Перебирает переданную коллекцию, и выполняет лямбда-выражение action для каждого ее элемента.
Переворачиваем изображение на 180 градусов
С помощью следующего фрагмента кода вы можете получить перевернутое на 180 градусов изображение.
Подробнее можно ознакомиться здесь.
#вопросы_с_собеседований
Поддерживает ли язык Java множественное наследование?
Это очень хитрый вопрос. Интервьюеры часто говорят: если язык C++ может поддерживать непосредственное множественное наследование, то почему Java не может?
Ответ несколько более сложен, чем может показаться на первый взгляд, поскольку Java поддерживает множественное наследование типов, ведь интерфейс в нём может расширять другие интерфейсы. Но множественное наследование реализаций язык Java не поддерживает.
#вопросы_с_собеседований
Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?
Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals()
нужно обязательно переопределять и метод hashCode()
.
#вопросы_с_собеседований
Можно ли указывать конструктор внутри Enum?
Да, конечно. Именно через конструктор и задаются значения внутренних переменных enum.
В качестве примера добавим два поля — ageFrom и ageTo — чтобы обозначить возрастные рамки для каждой роли.
#вопросы_с_собеседований
Что такое Map.of()?
Map.of() — это метод, представленный в Java 9, который позволяет разработчикам создавать неизменяемый Map, содержащий до десяти пар ключ-значение. Он обеспечивает удобный и лаконичный способ создания Map без необходимости написания большого количества кода.
Map.of() является улучшением по сравнению с предыдущим способом создания небольших Map с использованием конструктора класса HashMap, который может быть довольно громоздким и многословным.
🦾 Ты крутой джавист? Всегда есть куда расти.
Приходи повышать грейд на хардовый курс «Разработчик на Spring Framework» от OTUS.
👩💻 Авторская программа, с ней ты освоишь владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5). Получишь умение быстро проходить путь от идеи до production-grade.
🗓 6 ноября в 20:00 мск., пройдет бесплатный открытый урок курса, тема «Spring - разбор (не)стандартных вопросов интервью»
🔗 Ссылка на регистрацию: https://otus.pw/KYOu/
Будет интересно!Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Amplicode учит вашу IDE говорить на языке Spring Boot!
Amplicode – многофункциональный плагин для IntelliJ IDEA Community и Ultimate, упрощает и ускоряет работу с технологиями Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct и т.д.
Основные возможности
⚡ Навигация по проекту согласно архитектуре Spring приложения
⚡ Создание объектов сразу в терминах фреймворка вместо Java классов: контроллеры, репозитории, сервисы, сущности, события, DTO, мапперы и т.д.
⚡ Палитра и инспектор, позволяющие видеть опции, доступные разработчику в текущем контексте
⚡ Умные инжекции, подсказки и исправление ошибок
Это малая часть того, на что способен Amplicode. В настоящий момент возможности доступны абсолютно бесплатно!
Сделано с любовью к разработчикам командой, создавшей суперпопулярный плагин JPA Buddy ❤️
Попробовать Amplicode
Посмотрите как Amplicode помогает разрабатывать на Spring Boot в IntelliJ IDEA!
#реклама
О рекламодателе
Какие логические операции и операторы вы знаете?
• &
: Логическое AND (И);
• &&
: Сокращённое AND;
• |
: Логическое OR (ИЛИ);
• ||
: Сокращённое OR;
• ^
: Логическое XOR (исключающее OR (ИЛИ));
• !
: Логическое унарное NOT (НЕ);
• &=
: AND с присваиванием;
• |=
: OR с присваиванием;
• ^=
: XOR с присваиванием;
• ==
: Равно;
• !=
: Не равно;
• ?:
: Тернарный (троичный) условный оператор.
#вопросы_с_собеседований
Можно ли использовать строки в конструкции switch?
Да, начиная с Java 7 в операторе switch можно использовать строки, ранние версии Java не поддерживают этого. При этом:
• участвующие строки чувствительны к регистру;
• используется метод equals() для сравнения полученного значения со значениями case, поэтому во избежание NullPointerException стоит предусмотреть проверку на null.
• согласно документации, Java 7 для строк в switch, компилятор Java формирует более эффективный байткод для строк в конструкции switch, чем для сцепленных условий if-else.
💪 Мощный инструмент в одной строке: Метод of()
Метод of()
обеспечивает компактный способ создания неизменяемых коллекций.
🗣️ Этот метод является удобным и эффективным инструментом для создания коллекций с набором известных элементов.
♨️ Анализировать множество показателей и не перегружать приложение?
С Java Flight Recorder – это легко.
Приглашаем вас на открытый урок «Обзор инструмента Java Flight Recorder».
🗓 22 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от OTUS.
JFR:
- Регистрирует множество событий внутри виртуальной машины Java
- Не ухудшает производительность
- Помогает детально разобраться в причинах сбоев и ошибок
Хотите освоить? - приходите на вебинар!
Спикер – Александр Царёв, техлид в Сбере.
🔗 Ссылка на регистрацию: https://otus.pw/gQih/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru