seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

22676

№ 4931127152 Изучаем Java. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorjavist

Subscribe to a channel

Senior Java Developer

Что такое ключевое слово final и где его использовать?

Ключевое слово final можно использовать для переменных, методов и классов.
1. final переменную нельзя переназначить на другой объект.
2. final класс бесплоден, у него не может быть наследников.
3. final метод не может быть переопределен у предка.

Пробежали по верхам, теперь обсудим более подробно final переменные. Java даёт нам два способа создать переменную и присвоить ей некоторое значение:
1. Можно объявить переменную и инициализировать ее позже.
2. Можно объявить переменную и сразу же назначить ее.
Пример с использованием final переменной для этих случаев приведен выше на картинке.

Читать полностью…

Senior Java Developer

Класс-оболочка и тип данных

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

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какие два класса не наследуются от Object?

Ответ: Не ведитесь на провокации, нет таких классов: все классы прямо или через предков наследуются от класса Object!

Читать полностью…

Senior Java Developer

Метод fill()

Присваивает определенное значение int к каждому элементу указанного целочисленного массива. Такой же метод может быть использован всеми другими примитивными типами данных (byte, short, int и т.д.).

Читать полностью…

Senior Java Developer

🔥 Хардкорный тест для разработчиков, тимлидов и архитекторов! 💻 Ответьте на 11 вопросов и узнайте, достаточно ли у вас знаний, чтобы пройти онлайн-курс «Software Architect» в OTUS по спец.цене.

🦾 Курс поможет прокачать весь арсенал навыков, необходимых архитектору ПО.

❇️ Пройти тест - https://otus.pw/5ano/

💣 Знание продвинутых техник построения архитектуры — это топ-компетенции для программистов в 2025 году. За 4 месяца обучения вы изучите тактики работы с атрибутами качества и архитектурные решения, а также узнаете, как проектировать архитектуру мобильных приложений, микросервисов, баз данных и ML архитектуру пайплайнов.

🎁 Для получения спец.цены используйте промокод, который дает скидку на обучение - SoftwareArc_06

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Senior Java Developer

Generics

Всегда старайтесь типизировать ваши коллекции, методы и классы. Это избавляет сразу от 2-х потенциальных проблем: приведение типов и ошибок выполнения. Также назначение таких коллекций легче воспринимать. Особенно часто этим пренебрегают мои американо-индусские коллеги. Если же ваша коллекция должна содержать обьекты разных типов — используйте <?>, а еще лучше <? extends someType> тогда зная общий класс/интерфейс для всех обьектов вам не прийдется делать приведение типов и применять оператор instanceOf.

Читать полностью…

Senior Java Developer

Битва титанов: Java vs Kotlin

Один из старейших языков программирования Java и один из наиболее молодых Kotlin — активно используются для мобильной разработки. Но они также подходят для создания десктопных и серверных решений. Главный разработчик Группы «Иннотех» Владимир Полховцев сравнивает двух гигантов Android-разработки.

Смотреть статью

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Что такое исключение? Какой пакет содержит все определения классов исключений в Java?

Исключения (Exceptions) — это нештатные ситуации, возникающие во время выполнения программы. Они могут произойти в результате неправильного ввода пользователем или неправильной логики кодера. Пакет java.lang.Exception содержит все определения классов исключений в Java.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какие есть примитивные типы данных в Java?

В Java существует 8 примитивных типов данных:
1. short
2. byte
3. char
4. int
5. float
6. double
7. long
8. boolean

Читать полностью…

Senior Java Developer

⁉️ Монолит или микросервисы? Руководство для архитекторов, которые ценят свои нервы

Приглашаем на открытый урок.

🗓 17 июня в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Software Architect».

📌 Что будет на вебинаре:
✔️ Как не попасть в ловушку “модных” микросервисов;
✔️ Разбор признаков, что пора выходить из монолита;
✔️ Архитектурные паттерны для перехода к микросервисам (Strangler Fig, BFF, Self-contained systems);
✔️ Организационные и технические риски — что точно пойдёт не так и как это предсказать;
✔️ Роль DevOps, CI/CD и мониторинга в выборе архитектуры.

🎯 После вебинара вы:
- Получите пошаговое руководство по выбору архитектуры под ваш проект;
- Научитесь оценивать реальные риски и стоимость микросервисов;
- Поймёте, как внедрять архитектурные изменения без сбоев и хаоса;
- Увидите, как принимать взвешенные архитектурные решения, сохраняя технический контроль и производительность команды.

💡 Идеальный вебинар для тех, кто хочет перестать "архитектурить на ощущениях" и начать действовать стратегически.

🎁 Всем участникам вебинара дарим промокод, который дает скидку на обучение - SoftwareArc_06

👉 Регистрация на вебинар: https://otus.pw/ETxF/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Senior Java Developer

Spring JDBC

Spring JDBC - это фреймворк Spring, который предоставляет удобный и гибкий доступ к базам данных через JDBC API в Java.

В данном примере создается класс JdbcTemplateExample, в конструктор которого передается Datasource. JdbcTemplate используется для выполнения запросов к базе данных.

Метод getAllNames использует метод query для выполнения запроса SELECT и получения имени всех пользователей из таблицы users, обрабатывая результаты через интерфейс RowMapper.

Метод addUser использует метод update для выполнения запроса INSERT и добавления нового пользователя в таблицу users.

Результатом метода getAllNames будет список всех имен пользователей, а метод addUser добавит нового пользователя в таблицу users.

*Чтобы полностью понимать, как работает Spring JDBC, необходимо также разобраться в различных методах и классах, которые используются при работе с ним.

Читать полностью…

Senior Java Developer

IdentityHashMap

Класс IdentityHashMap в Java является реализацией интерфейса Map и работает на основе проверки на равенство ссылок объектов, а не на основе метода equals.

Это означает, что если два объекта, хранящихся в IdentityHashMap, содержат одинаковые значения полей, но разные ссылки, то они будут считаться разными ключами.

IdentityHashMap может быть полезной альтернативой для HashMap в тех случаях, когда ключом является объект, и необходимо учесть различие между ссылками на объект.

Читать полностью…

Senior Java Developer

LinkedHashSet

LinkedHashSet представляет собой структуру данных, которая хранит элементы в порядке их добавления, а также не допускает дублирования элементов
, как и HashSet.

Однако, в отличие от HashSet, LinkedHashSet сохраняет порядок добавления элементов, что может быть полезно в некоторых случаях.

Как видно из примера, элементы были добавлены в множество в порядке их добавления, а дубликат элемента "Java" не был добавлен в множество.

Читать полностью…

Senior Java Developer

Графический интерфейс для bash, делаем работу в командной строке удобнее

Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи.

Смотреть статью

Читать полностью…

Senior Java Developer

👩‍💻 Java — один из самых востребованных языков, но не каждый разработчик умеет использовать его возможности по максимуму.

На курсе «Java Developer. Professional» вы научитесь создавать современные Java-приложения, освоите Spring WebFlux и Kafka, а также разберётесь в работе JVM изнутри.

Пройдите тест, проверьте, достаточно ли у вас знаний для обучения на курсе:.

🎁 Дарим промокод, который дает скидку на обучение - JAVA_06

На курсе вас ждёт практическая работа с кодом, детальные разборы, ревью от экспертов и подходы, позволяющие писать эффективный и чистый код.

Начните свой путь к уровню Middle+ и используйте Java на 100%.

➡️ Пройти вступительный тест курса: https://otus.pw/xc1M/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Senior Java Developer

Ты будешь жалеть, что не узнал это о девушках раньше.

На канале Творчество чувств автор с многолетним опытом всех форматов отношений рассказывает о тонкостях женской психологии, которые ВАЖНО узнать перед тем, как подкатывать к той самой:

— Почему 95% девушек непригодны для построения отношений?
— 3 признака, кричащие о том, что девушка точно изменит в будущем
— Как за несколько сообщений влюбить в себя любую девушку


Подпишись и узнай секрет женской симпатии:
t.me/+NcZ3vFzbiY5mYWI6

Читать полностью…

Senior Java Developer

Когда системы не хотят «дружить» между собой — начинается головная боль.😫

Особенно если речь идет о масштабировании и автоматизации процессов. Как избежать лишнего кода, сэкономить время и силы, при этом интегрировать внешние системы с Apache Kafka?

Ответ — Kafka Connect.


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

Что будет на вебинаре:

✒️Основы Kafka Connect: Архитектура и принципы работы, коннекторы

✒️Практическая реализация: Настройка и запуск коннекторов для интеграции с базами данных и файловыми системами

✒️Ошибки и их решение: Как эффективно отлаживать и масштабировать Kafka Connect

23 июня в 19:00 (МСК) — Бесплатно!

Спикер: Валентин Шилин — Старший программист и аналитик данных в Deutsche Telekom IT GmbH

Дарим чек-лист по установке Kafka Connect при регистрации на вебинар!

Присоединяйтесь, если хотите научиться упрощать сложные задачи и увеличивать надежность своих систем: https://tglink.io/a095b9ea23bb

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFH9DjD2

Читать полностью…

Senior Java Developer

Как контролировать и управлять приложениями на Spring Boot без лишней головной боли?

На открытом вебинаре «Spring Boot Actuator: основы мониторинга и управления приложением» 25 июня в 20:00 МСК мы разберём:

- Для чего нужен Spring Boot Actuator.
- Как настроить и использовать метрики для контроля приложений.
- Как избежать проблем с производительностью на ранних этапах разработки.

Представьте, что вы с лёгкостью настраиваете мониторинг, отслеживаете метрики и эффективно управляете приложениями без перерывов в работе. Это станет возможным, если освоить Spring Boot Actuator.

Открытый урок проходит в преддверии старта курса «Разработчик на Spring Framework» — все участники получат скидку на обучение.

Регистрируйтесь прямо сейчас: https://otus.pw/NdoI/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Senior Java Developer

Bit Set

Что, если нам нужно выполнить какие-то операции с массивами битов? Вы будете использовать для этого boolean[]?

Для этого есть более эффективный с точки зрения использования памяти метод.

Это класс BitSet, позволяющий нам хранить массивы битов и манипулировать ими. По сравнению с boolean[] он требует в 8 раз меньше памяти. Мы можем выполнять логические операции над массивами, такими как, например and, or, xor.

Допустим, у нас есть два входных массива битов. Мы хотим провести на них операцию xor.

Уточню, операция xor, возвращает только те элементы, которые имеются только в одном массиве, но не в другом. Для этого нам нужно создать два экземпляра BitSet и вставить туда элементы, как показано ниже. Наконец, вы должны вызвать метод xor в одном из BitSet объектов, указав в качестве аргумента второй BitSet объект.

Читать полностью…

Senior Java Developer

Шестнадцатеричный формат

Иногда нам нужно преобразовать строки в шестнадцатеричный формат, байты или символы. Начиная с Java 17 вы можете использовать класс HexFormat. Просто создайте экземпляр HexFormat, а затем вы можете отформатировать, например, входную таблицу byte в шестнадцатеричную строку. Вы также можете, например, преобразовать входную шестнадцатеричную строку в таблицу байтов, как показано выше.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Почему нельзя объявить метод интерфейса с модификатором final?

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

Читать полностью…

Senior Java Developer

Collection только для чтения

В Java есть полезные методы, позволяющие сделать класс Collection доступным только для чтения.

Мы можем сделать коллекцию только для чтения, используя один из следующих методов.

Читать полностью…

Senior Java Developer

👩‍💻 JPQL: как писать запросы, которые не сломают Hibernate

Узнайте, как писать JPQL-запросы, которые ускорят Hibernate в 5 раз, избегая критических ошибок, тормозящих 80% проектов!

Приглашаем на открытый урок

🗓 19 июня в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional».

🎯 О чём поговорим:
✔️- JPQL vs SQL: почему ваши запросы ломают Hibernate и как их переписать так, чтобы БД не «умирала» под нагрузкой.
✔️ Тайные ловушки: антипаттерны JPQL, генерирующие N+1 SELECT и тормозящие приложение, и методы их поиска в коде.
✔️ Оптимизация на максимум: как использовать JOIN FETCH, подзапросы и кэширование в JPQL для мгновенного ускорения Hibernate.

👥 Кому будет интересно:
Java-разработчикам, использующим Hibernate, системным архитекторам и инженерам по оптимизации производительности.

💡В результате урока вы:
Научитесь писать эффективные JPQL-запросы, избегать распространённых ошибок и значительно ускорять работу Hibernate-приложений.

🎁 Дарим промокод, который дает скидку на обучение - JAVA_06

🔗 Ссылка на регистрацию: https://otus.pw/FHz0/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Чем занимается сборка мусора в Java?

Сборка мусора Java — это метод, с помощью которого приложения Java автоматически сохраняют свою память, удаляя или очищая неиспользуемые объекты и пакеты в памяти.

Читать полностью…

Senior Java Developer

flatMap

flatMap - это метод, который принимает функцию в качестве параметра, применяет ее ко всем элементам потока, а затем объединяет результаты в один поток.
Обычно используется для работы с потоками, содержащими другие потоки или коллекции.

В этом примере мы используем flatMap для преобразования потока сотрудников в поток проектов, используя лямбда-выражение, которое возвращает поток проектов сотрудника. Затем мы собираем все проекты в один поток при помощи метода collect.

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

Читать полностью…

Senior Java Developer

erid: 2W5zFGzRWUY

Канал про собеседования, алгоритмы, System Design, процессы, культуру и инженерию в FAANG/BigTech

Автор канала — разработчик с 18-летним опытом, из которых 8 лет он провёл в FAANG (3,5 года — в Amazon). Работал и жил в России, Германии, Люксембурге и Великобритании, провёл более 100 технических интервью в FAANG-компании.
На канале разбираю реальные задачи с собеседований в FAANG по алгоритмам и System Design. Рассматриваю задачи из не-FAANG компаний на Java, делая акцент на многопоточность. Делюсь опытом работы в FAANG, рассказываю о процессах, технологиях и инженерной культуре, обсуждаю особенности релокации и жизни разработчика в разных странах.

Если вам интересны эти темы, подписывайтесь: t.me/faangmaster

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какие виды Garbage Collector есть в HotSpot?

В HotSpot JVM имеется несколько видов Garbage Collector:

1. Serial
: однопоточный сборщик мусора, обрабатывает один поток в куче, который блокирует все приложение на этапе сборки мусора;

2. Parallel: многопоточный сборщик мусора, работает по тому же принципу, что и Serial, но использует несколько потоков для устройства сборки мусора, что сокращает время блокировки приложения;

3. CMS (Concurrent Mark-Sweep): сборщик мусора для больших куч, работает параллельно со стоп-временем, когда сборка мусора производится мгновенно, а приложение продолжает работу во время сборки мусора;

4. G1 (Garbage First): сборщик мусора нового поколения с выделенной кучей на основе регионов, который был разработан с целью улучшения показателей быстродействия и уменьшения времени блокировки. G1 собирает мусор в регионах, где около 25% от общего числа объектов имеют самую высокую степень задействованности и блокирует только те регионы, где собран мусор.

Читать полностью…

Senior Java Developer

Холостые циклы в Java

Смысл холостого цикла состоит в ожидании события, до наступления которого текущий поток не может двигаться дальше.

Смотреть статью

Читать полностью…

Senior Java Developer

Как сделать анимацию с помощью MotionLayout

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

Смотреть статью

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Зачем добавили ArrayList, если уже был Vector?

• Методы класса Vector синхронизированы, а ArrayList - нет;
• По умолчанию Vector удваивает свой размер, когда заканчивается выделенная под элементы память. ArrayList же увеличивает свой размер только на половину.

Vector это устаревший класс и его использование не рекомендовано.

Читать полностью…
Subscribe to a channel