13937
Обучающий канал по Java Ссылка для друга - https://t.me/+ZEYYht6-46w5MDM6 По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Java_per_month
⚙️ List.subList()
В Java метод subList() позволяет создать представление части списка. Это удобно для работы с подмножествами коллекций без необходимости копирования элементов.
Java Learning 👩💻
➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений
Quarkus — оптимизированный фреймворк для создания Java-приложений с низким временем запуска и минимальным потреблением памяти. Подходит для облачных и серверлесс-приложений.• Быстрый старт с нативной компиляцией на GraalVM.• Оптимизация для облака и контейнеров.• Совместимость с Java API и фреймворками Spring, Hibernate.• Горячая перезагрузка для ускорения разработки.
🔗 Ссылочка на доку
Java Learning 👩💻
🔴 Завтра тестовое собеседование с Java-разработчиком
5 августа(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
🔴 Завтра тестовое собеседование с Java-разработчиком
15 июля(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
#вопросы_с_собеседований
Что будет, если в Map положить два значения с одинаковым ключом?
Если в Map положить два значения с одинаковым ключом, то произойдет следующее:
— При добавлении второго значения с уже существующим ключом, первое значение, связанное с этим ключом, будет перезаписано.
— Map может содержать только уникальные ключи. При попытке добавить дублирующийся ключ, старое связанное значение будет заменено новым.
— Конкретная реализация Map (например, HashMap) может бросить исключение, если попытаться добавить дублирующийся ключ.
Таким образом, поведение в такой ситуации зависит от конкретной реализации интерфейса Map, но в целом дублирующиеся ключи в Map запрещены.
Java Learning 👩💻
⚙️ Collectors.toMap()
В Java метод Collectors.toMap() собирает элементы потока в карту (Map), где вы можете указать функции для ключей и значений. Это удобно для преобразования коллекций в структуру ключ-значение.
Java Learning 👩💻
👩💻 Java в Kubernetes за 40 минут: как задеплоить приложение в Minikube
Приглашаем на открытый урок.
🗓 08 июня в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java разработчик. Экспертный уровень».
Minikube — личный Kubernetes для тестов. Научитесь деплоить Java-приложения — база для DevOps, CI/CD и продакшна.
О чем поговорим:
✔️ Подготовка Java-приложения к деплою (JAR → Docker image).
✔️ Установка Minikube и настройка локального кластера.
✔️ Написание манифестов: Deployment, Service, ConfigMap.
✔️ Запуск приложения и проверка работоспособности.
Вебинар будет полезен:
Java-разработчикам, начинающим осваивать Kubernetes и DevOps-подходы, а также инженерам, выстраивающим локальные CI/CD практики.
В результате вебинара:
Сможете самостоятельно задеплоить Java-приложение в Minikube, написать манифесты и лучше понять, как работает Kubernetes «под капотом».
🔗 Ссылка на регистрацию: https://otus.pw/1GE4/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ Collections.reverse()
В Java метод Collections.reverse() изменяет порядок элементов в списке на обратный. Это удобно для работы с коллекциями, где требуется обратный порядок.
Java Learning 👩💻
➡️ Использование Chronicle Map для распределенных ключ-значение хранилищ
Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем.• Поддерживает распределенные хранилища.• Минимальная задержка, высокая производительность.• Идеальна для финансовых и IoT-приложений.
🔗 Ссылочка на доку
Java Learning 👩💻
Проект можно запустить быстро, но выдержит ли он рост нагрузки, требования к безопасности и отказоустойчивости? Часто на старте думают только о функциях. Производительность, масштабирование, защита — добавим потом. В реальности это «потом» оборачивается дорогими переделками и компромиссами.
На бесплатном вебинаре:
- разберём, как требования к нагрузке, отказоустойчивости и безопасности формируют архитектуру с первого дня.
- поговорим о том, какие нефункциональные требования влияют на систему сильнее всего.
- как собирать и формулировать их вместе с бизнесом и как принимать архитектурные решения с учётом сроков и бюджета.
Спикер Александр Хохлов — архитектор платформенных решений в ГК Иннотех.
Открытый урок проходит в преддверии старта курса «Проектирование систем».
Регистрируйтесь сейчас - напомним перед вебинаром: регистрация
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👩💻 Открытый урок «Spring Boot Actuator: основы мониторинга и управления приложением»
🗓 30 марта в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.
Узнайте, как эффективно реализовать интернационализацию и локализацию в Spring-приложениях.
На вебинаре разберем:
Знакомимся с базовыми возможностями Spring Boot Actuator — важным инструментом для контроля приложений.
О чём поговорим:
✔️ Зачем нужен Spring Boot Actuator.
✔️ Какие задачи решает при работе с приложениями.
✔️ Базовая настройка Actuator.
✔️ Просмотр метрик и их значение.
Кому будет интересно:
Начинающим Java-разработчикам и инженерам, впервые сталкивающимся с задачами мониторинга приложений.
🔗 Ссылка на регистрацию: https://otus.pw/fypt/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ Использование метода Stream.takeWhile() для фильтрации данныхStream.takeWhile() — это метод, который появился в Java 9 и позволяет получать элементы потока до тех пор, пока выполняется заданное условие. Как только условие перестаёт выполняться, поток завершает свою работу, и оставшиеся элементы не проверяются.• takeWhile() полезен для работы с отсортированными данными, где нужно выбрать элементы, соответствующие определённому критерию, до первого неподходящего элемента.
Java Learning 👩💻
🔴 КАК ИДЕАЛЬНО ПРОЙТИ СОБЕС? ПОКАЖЕМ ЗАВТРА!
Каждый, проходя интервью, думал: «Ну что они хотят услышать? Я же правильно ответил! Почему меня не взяли?»
4 марта(уже завтра!) в 19:00 по мск приходи онлайн на открытое интервью, где будут собеседовать МЕНТОРА ШОРТКАТ
Как это будет:
📂 Виктор Анохин, старший разработчик из WildBerries, будет задавать реальные вопросы и задачи старшему разработчику Сергею Чамкину
📂 Сергей будет отвечать на каждый вопрос так, как это ожидает сам от вас на собеседованиях
📂 В конце можно будет задать любой вопрос Сергею и Виктору
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
➡️ Apache Commons Lang
Apache Commons Lang — это библиотека, которая расширяет стандартную библиотеку Java, предоставляя множество утилит для работы со строками, числовыми операциями, рефлексией и другими общими задачами программирования.
🗣 Если вам часто приходится манипулировать строками, работать с числами или использовать рефлексию, Apache Commons Lang может стать незаменимым помощником.
🔗 Ссылочка на доку
Java Learning 👩💻
🔴 Завтра тестовое собеседование с Java-разработчиком
11 февраля(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
🔴 Завтра тестовое собеседование с Java-разработчиком
2 сентября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
⚙️ Collectors.joining()
В Java метод Collectors.joining() из пакета java.util.stream позволяет объединить элементы потока в одну строку с опциональным разделителем, префиксом и суффиксом. Это удобно для создания строковых представлений коллекций.
Java Learning 👩💻
⚙️ Files.mismatch()
Метод Files.mismatch(), добавленный в Java 12, позволяет сравнить два файла и найти позицию первого несовпадающего байта. Если файлы идентичны, метод возвращает -1. Это полезно для проверки целостности данных или сравнения файлов.
Java Learning 👩💻
❓ Вопрос на собеседовании
Что такое ConcurrentHashMap в Java, как он работает и чем отличается от HashMap в многопоточной среде?
Ответ ⬇️
ConcurrentHashMap — это потокобезопасная версия HashMap, предназначенная для использования в многопоточной среде. В отличие от HashMap, который не является потокобезопасным и может приводить к состояниям гонки, ConcurrentHashMap позволяет нескольким потокам одновременно читать и изменять карту без блокировок всей коллекции. Он достигает этого за счёт сегментации и блокировок на уровне сегментов, а не всей структуры.
Пример использования ⚙️
import java.util.concurrent.ConcurrentHashMap;
public class Main {
public static void main(String[] args) {
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("Alice", 1);
map.put("Bob", 2);
map.computeIfPresent("Alice", (key, val) -> val + 1);
System.out.println(map); // {Alice=2, Bob=2}
}
}
⚙️ String.replaceAll()
В Java метод String.replaceAll() заменяет все вхождения текста, соответствующего регулярному выражению, на заданную строку. Это мощный инструмент для обработки строк.
Java Learning 👩💻
⚙️ Stream.collect() с Collector.of()
В Java метод Collector.of() позволяет создавать пользовательские коллекции с кастомной логикой для сборки данных. Это даёт полный контроль над процессом объединения элементов.
Java Learning 👩💻
RefactorFirst
RefactorFirst — это инструмент для Java-кода, помогающий определить и расставить по приоритетам классы, которые следует рефакторить в первую очередь. Он работает, сканируя код на наличие «божественных классов» (God Classes) и классов с высокой степенью связности.
«Божественных классов» — это классы, которые делают слишком много и, следовательно, являются плохо спроектированными. Они могут быть трудными для понимания, тестирования и сопровождения.
Java Learning 👩💻
❓ Вопрос на собеседовании
Что такое функциональный интерфейс в Java, и как он используется в лямбда-выражениях?
Ответ ⬇️
Функциональный интерфейс в Java — это интерфейс с единственным абстрактным методом, который может использоваться как целевая конструкция для лямбда-выражений и ссылок на методы. Они помогают писать более чистый и выразительный код, позволяя передавать поведение (функции) как параметры. Аннотация @FunctionalInterface проверяет, что интерфейс соответствует требованиям функционального интерфейса и помогает избежать случайного добавления методов.
Пример использования ⚙️
@FunctionalInterface
interface MyFunctionalInterface {
void printMessage(String message);
}
public class Main {
public static void main(String[] args) {
MyFunctionalInterface printer = message -> System.out.println("Сообщение: " + message);
printer.printMessage("Привет, мир!"); // Сообщение: Привет, мир!
}
}
⚙️ Files.move()
В Java метод Files.move() из пакета java.nio.file используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой.
Java Learning 👩💻
Метод isDaemon()
Метод isDaemon() используется для определения, является ли поток демоном или нет.
Демон (daemon) — это поток, который работает в фоновом режиме и не препятствует завершению программы. Основная программа может завершиться, даже если демон все еще выполняется.
Java Learning 👩💻
#вопросы_с_собеседований
🤔 Что будет, если в static блоке кода возникнет исключение?
Если в static блоке кода возникнет исключение, то это приведет к ошибке инициализации класса.
Static блок выполняется при загрузке класса, и любые исключения в нем приведут к сбою и невозможности загрузить класс.
Поэтому нужно либо обрабатывать исключения в static блоке, либо избегать кода, который может привести к исключениям.
Лучше выносить в static блок только простую инициализацию, а сложную логику помещать в конструктор или методы класса.
Java Learning 👩💻
➡️ Использование метода Collectors.filtering() для фильтрации элементов при сборе в коллекцию
Начиная с Java 9, метод Collectors.filtering() позволяет фильтровать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно собирать только определённые элементы, не прибегая к дополнительным фильтрациям на этапе потока.• Collectors.filtering() делает код более лаконичным, предоставляя встроенный способ фильтрации элементов в процессе их коллекционирования.• Этот метод позволяет объединять фильтрацию и сбор данных в одну операцию.
Java Learning 👩💻
OptaPlanner
OptaPlanner — это фреймворк с открытым исходным кодом для решения задач планирования на Java. Он позволяет вам легко создавать высокопроизводительные алгоритмы планирования, не тратя время на рутинные задачи кодирования.
https://github.com/apache/incubator-kie-optaplanner
Java Learning 👩💻
➡️ Оптимизация работы с коллекциями с помощью метода removeIf
В Java 8 был введен метод removeIf, который позволяет удалить элементы из коллекции, удовлетворяющие определенному условию, без необходимости явного использования цикла.
Java Learning 👩💻
⚙️ Оптимизация сборщика мусора с помощью -XX:+UseG1GC
Java предоставляет множество возможностей для оптимизации производительности приложений.
✔️ Одной из таких возможностей является использование современного сборщика мусора G1 (Garbage First), который улучшает работу приложений с большим объемом данных и снижает задержки.
➡️ Чтобы включить использование G1GC, необходимо добавить флаг -XX:+UseG1GC при запуске Java-приложения:
java -XX:+UseG1GC G1GCExample