#полезное
👍 Шпаргалка по Spring Framework
Включены ключевые технологии, такие как Spring Boot, Dependency Injection (DI), Inversion of Control (IoC), Spring MVC, Spring Data JPA, Spring Security и другие.
Объяснены, как эти технологии упрощают разработку Java-приложений, автоматизируют управление зависимостями, обеспечивают безопасность, работу с базами данных и улучшенную производительность.
👉 Новости 👉 База вопросов
Включены ключевые технологии, такие как Spring Boot, Dependency Injection (DI), Inversion of Control (IoC), Spring MVC, Spring Data JPA, Spring Security и другие.
Объяснены, как эти технологии упрощают разработку Java-приложений, автоматизируют управление зависимостями, обеспечивают безопасность, работу с базами данных и улучшенную производительность.
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Какие элементы могут содержать класс?
Класс может содержать поля (свойства), методы, конструкторы, статические блоки, вложенные классы, интерфейсы и аннотации.
👉 Новости 👉 Платформа
Класс может содержать поля (свойства), методы, конструкторы, статические блоки, вложенные классы, интерфейсы и аннотации.
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 358. Rearrange String k Distance Apart
Дана строка s и целое число k, переставьте символы в s так, чтобы одинаковые символы находились на расстоянии не менее k друг от друга. Если невозможно переставить строку, верните пустую строку "".
Пример:
👨💻 Алгоритм:
1⃣ Создайте словарь частот для символов строки и определите максимальную частоту.
2⃣ Разделите символы на группы по частоте и создайте сегменты для размещения символов.
3⃣ Распределите оставшиеся символы по сегментам, проверяя условия, и объедините сегменты в итоговую строку.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 358. Rearrange String k Distance Apart
Дана строка s и целое число k, переставьте символы в s так, чтобы одинаковые символы находились на расстоянии не менее k друг от друга. Если невозможно переставить строку, верните пустую строку "".
Пример:
Input: s = "aabbcc", k = 3
Output: "abcabc"
Explanation: The same letters are at least a distance of 3 from each other.
class Solution {
public String rearrangeString(String s, int k) {
Map<Character, Integer> freqs = new HashMap<>();
int maxFreq = 0;
for (char c : s.toCharArray()) {
freqs.put(c, freqs.getOrDefault(c, 0) + 1);
maxFreq = Math.max(maxFreq, freqs.get(c));
}
Set<Character> mostChars = new HashSet<>();
Set<Character> secondChars = new HashSet<>();
for (char c : freqs.keySet()) {
if (freqs.get(c) == maxFreq) mostChars.add(c);
else if (freqs.get(c) == maxFreq - 1) secondChars.add(c);
}
StringBuilder[] segments = new StringBuilder[maxFreq];
for (int i = 0; i < maxFreq; i++) segments[i] = new StringBuilder();
for (char c : mostChars) {
for (int i = 0; i < maxFreq; i++) segments[i].append(c);
}
for (char c : secondChars) {
for (int i = 0; i < maxFreq - 1; i++) segments[i].append(c);
}
int segmentId = 0;
for (char c : freqs.keySet()) {
if (mostChars.contains(c) || secondChars.contains(c)) continue;
for (int freq = freqs.get(c); freq > 0; freq--) {
segments[segmentId].append(c);
segmentId = (segmentId + 1) % (maxFreq - 1);
}
}
for (int i = 0; i < maxFreq - 1; i++) {
if (segments[i].length() < k) return "";
}
return String.join("", segments);
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 22 библиотеки и API, которые, по мнению автора, являются необходимыми для Java в 2025 году
В списке есть инструменты для модульного тестирования (JUnit, Mockito), работы с JSON (Jackson, Gson), логирования (SLF4J, Log4j2), HTTP-запросов (Apache HttpClient), XML (JAXB, Xerces), а также универсальные утилиты (Apache Commons, Google Guava
Читать подробнее
👉 Новости 👉 База вопросов
В списке есть инструменты для модульного тестирования (JUnit, Mockito), работы с JSON (Jackson, Gson), логирования (SLF4J, Log4j2), HTTP-запросов (Apache HttpClient), XML (JAXB, Xerces), а также универсальные утилиты (Apache Commons, Google Guava
Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
😊 Java Version Almanac — коллекция информации об истории и будущем языка программирования Java.
Сайт предоставляет подробные сведения о различных версиях Java, включая документацию, новые API, добавленные функции и варианты загрузки. На сайте также можно найти информацию о новых функциях, представленных в различных версиях JDK
👉 Новости 👉 База вопросов
Сайт предоставляет подробные сведения о различных версиях Java, включая документацию, новые API, добавленные функции и варианты загрузки. На сайте также можно найти информацию о новых функциях, представленных в различных версиях JDK
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Расскажите о подражании Java. Каковы особенности использования ключевого слова super?
Ключевое слово
👉 Новости 👉 Платформа
Ключевое слово
super
в Java используется для вызова конструктора или методов родительского класса, а также для доступа к скрытым полям. Это необходимо при переопределении методов или для точного указания, что используется родительская версия метода или свойства.Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
😐 Новые возможности в Java 21
🟠 Шаблоны записей (Record patterns) были добавлены в Java 19 и Java 20 как preview-функции. В Java 21 они вышли из режима предварительного просмотра с некоторыми улучшениями.
🟠 Сопоставление с образцом в switch (Pattern matching for switch) было усовершенствовано в JDK 18, 19 и 20, а в JDK 21 получило дополнительные улучшения.
🟠 Шаблоны строк (String templates) появились в Java 21.
🟠 Виртуальные потоки (Virtual threads) впервые были добавлены в Java 19 в качестве preview-функции и доработаны в Java 20. В Java 21 добавлены новые изменения.
🟠 Новые интерфейсы для упорядоченных коллекций: в Java 21 появились три новых интерфейса для представления упорядоченных коллекций, упорядоченных наборов (sets) и упорядоченных карт (maps).
🟠 Новый API KEM: Java 21 добавила новый API KEM, который позволяет приложениям использовать алгоритмы KEM.
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Основы flatMap в Java
🟠 flatMap является промежуточной операцией.
🟠 Промежуточные операции преобразуют один поток (stream) в другой и позволяют выполнять дальнейшие операции с потоком.
🟠 Слово «flat» в flatMap указывает на его способность «выравнивать» поток коллекций (например, Stream<List<T>>) в единый поток элементов (Stream<T>).
🟠 Назначение: преобразует каждый элемент исходного потока в поток других элементов (отображение «один ко многим»), а затем объединяет (выравнивает) полученные потоки в единый непрерывный поток.
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤯 Как установить базовый URL для REST API в приложении Spring Boot.
Базовый URL — это постоянная часть адреса вашего REST API или веб-сайта, например,
Читать подробнее
👉 Новости 👉 База вопросов
Базовый URL — это постоянная часть адреса вашего REST API или веб-сайта, например,
"http://twitter.com"
для Twitter. Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Что такое сигнатура метода? Приведите примеры правильных и неправильных сигнатур.
Сигнатура метода в Java - это его имя и список типов параметров (их порядок важен). Она используется для различения методов в одном классе. Возвращаемый тип и модификаторы доступа не являются частью сигнатуры.
👉 Новости 👉 Платформа
Сигнатура метода в Java - это его имя и список типов параметров (их порядок важен). Она используется для различения методов в одном классе. Возвращаемый тип и модификаторы доступа не являются частью сигнатуры.
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
😊 Дженерики в Java. Проще чем кажется.
Видео объясняет концепцию дженериков в Java, начиная с их создания, а не использования, чтобы упростить понимание для начинающих. Автор показывает, как параметризованные типы позволяют работать с разными объектами, демонстрирует примеры с числами, строками и пользовательским классом Car, объясняя, почему важно переопределять метод toString для корректного вывода.
📱 Cмотреть на ютубе
👉 Новости 👉 База вопросов
Видео объясняет концепцию дженериков в Java, начиная с их создания, а не использования, чтобы упростить понимание для начинающих. Автор показывает, как параметризованные типы позволяют работать с разными объектами, демонстрирует примеры с числами, строками и пользовательским классом Car, объясняя, почему важно переопределять метод toString для корректного вывода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
🤓 Пойми как устроены примитивы в Java
Видео — детальный разбор примитивных типов данных в Java: их размер, диапазон, литералы, а также отличие от классов-оберток (Wrapper Classes, BigInteger, BigDecimal). Рассматривается двоичное представление чисел, переполнение, работа с отрицательными и дробными числами.
📱 Cмотреть видео
👉 Новости 👉 База вопросов
Видео — детальный разбор примитивных типов данных в Java: их размер, диапазон, литералы, а также отличие от классов-оберток (Wrapper Classes, BigInteger, BigDecimal). Рассматривается двоичное представление чисел, переполнение, работа с отрицательными и дробными числами.
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Что такое инициализатор?
Инициализатор - это блок кода, который используется для инициализации переменных или выполнения логики до конструктора. Бывают статические и нестатические (экземплярные) инициализаторы.
👉 Новости 👉 Платформа
Инициализатор - это блок кода, который используется для инициализации переменных или выполнения логики до конструктора. Бывают статические и нестатические (экземплярные) инициализаторы.
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 560. Subarray Sum Equals K
Дан массив целых чисел nums и целое число k, вернуть общее количество подмассивов, сумма которых равна k.
Подмассив - это непрерывная непустая последовательность элементов внутри массива.
Пример:
👨💻 Алгоритм:
1⃣ Самый простой метод - рассмотреть каждый возможный подмассив данного массива nums.
2⃣ Найти сумму элементов каждого из этих подмассивов и проверить равенство полученной суммы с заданным k.
3⃣ Всякий раз, когда сумма равна k, увеличить счетчик, используемый для хранения необходимого результата.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 560. Subarray Sum Equals K
Дан массив целых чисел nums и целое число k, вернуть общее количество подмассивов, сумма которых равна k.
Подмассив - это непрерывная непустая последовательность элементов внутри массива.
Пример:
Input: nums = [1,1,1], k = 2
Output: 2
public class Solution {
public int subarraySum(int[] nums, int k) {
int count = 0;
for (int start = 0; start < nums.length; start++) {
for (int end = start + 1; end <= nums.length; end++) {
int sum = 0;
for (int i = start; i < end; i++) {
sum += nums[i];
}
if (sum == k) {
count++;
}
}
}
return count;
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 Основные концепции в Kafka которые нужно знать:
🟠 Топики (Topics): Kafka организует сообщения в топики, которые выступают в роли категорий сообщений.
🟠 Разделы (Partitions): Каждый топик разделяется на несколько разделов, что позволяет обрабатывать данные параллельно.
🟠 Продюсеры (Producers): Отправляют сообщения в топики Kafka.
🟠 Потребители (Consumers): Читают сообщения из топиков, обычно в составе групп потребителей для параллельной обработки.
🟠 Брокеры (Brokers): Сервера Kafka, которые хранят и передают сообщения.
🟠 Zookeeper: Управляет метаданными и выбором лидера для разделов.
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😇 Создание простого HTTP-сервера в Java
🟠 Настройка и обзор проекта.
🟠 Управление конфигурацией.
🟠 Использование серверных сокетов.
🟠 Обработка нескольких подключений с помощью потоков.
🟠 Разбор HTTP-запросов.
и тд.
Это пошаговое руководство, которое поможет разобраться в основах создания веб-сервера с нуля на Java.
📱 Cмотреть источник
👉 Новости 👉 База вопросов
и тд.
Это пошаговое руководство, которое поможет разобраться в основах создания веб-сервера с нуля на Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Какие ассоциативные связи между объектами вы знаете?
Ассоциативные связи включают агрегацию, композицию и ассоциацию. Они описывают, как объекты взаимодействуют друг с другом.
👉 Новости 👉 Платформа
Ассоциативные связи включают агрегацию, композицию и ассоциацию. Они описывают, как объекты взаимодействуют друг с другом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Забыли про ExecutorService и вечные потоки?
Дайте шанс
Пример
Преимущества
🟠 Параллельные операции без блокировок.
🟠 Чистый и понятный код.
🟠 Гибкость при работе с результатами.
👉 Новости 👉 База вопросов
Дайте шанс
CompletableFuture
! Это идеальный способ выполнять несколько операций параллельно, при этом сохраняя чистый код.Пример
CompletableFuture.supplyAsync(() -> {
// Долгая операция
return "Hello, ";
}).thenCombine(
CompletableFuture.supplyAsync(() -> {
// Ещё одна операция
return "World!";
}),
(greeting, name) -> greeting + name
).thenAccept(System.out::println); // Выведет "Hello, World!"
Преимущества
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM