#ЛитКод
Задача: 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
#полезное
👍 Как работает перехватчик (Interceptor) в Spring Boot?
Когда клиент делает запрос:
1⃣
2⃣ Затем
3⃣ Перед тем как запрос достигнет Controller, он проходит через все настроенные перехватчики (Interceptors) и выполняет их метод preHandle().
4⃣ Если все методы
5⃣ Controller выполняет запрос. После этого запрос проходит через метод postHandle() всех перехватчиков.
6⃣ Наконец, если все прошло успешно и методы
👉 Новости 👉 База вопросов
Когда клиент делает запрос:
DispatcherServlet
первым получает запрос.DispatcherServlet
использует HandlerMappings, чтобы найти соответствующий Controller.
preHandle()
возвращают true, запрос передается в Controller.
postHandle()
вернули true
, вызывается метод afterCompletion()
у всех перехватчиков.Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Что означает ключевое слово?
Ключевые слова - это зарезервированные слова в языке программирования, которые имеют специальное значение и не могут быть использованы для именования переменных, методов и классов. В Java ключевые слова такие как class, static, if и другие определяют структуру и функциональность программы.
👉 Новости 👉 База вопросов
Ключевые слова - это зарезервированные слова в языке программирования, которые имеют специальное значение и не могут быть использованы для именования переменных, методов и классов. В Java ключевые слова такие как class, static, if и другие определяют структуру и функциональность программы.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
😊 Как Java-приложение подключается к базе данных через JDBC?
При разработке Java-приложений часто требуется работать с базой данных. Для этого используется JDBC (Java Database Connectivity) — технология, которая позволяет Java-программе отправлять SQL-запросы и получать данные
Давайте разберемся, как это работает шаг за шагом:
1⃣ Java-приложение
Программа пишет SQL-запрос, который нужно выполнить (например, SELECT * FROM users).
2⃣ JDBC API
Этот запрос передается через JDBC API, который является стандартным интерфейсом взаимодействия с базами данных в Java.
3⃣ Driver Manager (Менеджер драйверов)
JDBC API отправляет запрос в Driver Manager. Этот компонент выбирает правильный драйвер для нужной базы данных.
4⃣ Database Driver (Драйвер базы данных)
Найденный драйвер переводит запрос в понятный для базы данных формат и отправляет его в СУБД.
5⃣ Database (База данных)
База данных выполняет запрос и возвращает результат обратно через все уровни:
Database → Database Driver → Driver Manager → JDBC API → Java-приложение.
👉 Новости 👉 База вопросов
При разработке Java-приложений часто требуется работать с базой данных. Для этого используется JDBC (Java Database Connectivity) — технология, которая позволяет Java-программе отправлять SQL-запросы и получать данные
Давайте разберемся, как это работает шаг за шагом:
Программа пишет SQL-запрос, который нужно выполнить (например, SELECT * FROM users).
Этот запрос передается через JDBC API, который является стандартным интерфейсом взаимодействия с базами данных в Java.
JDBC API отправляет запрос в Driver Manager. Этот компонент выбирает правильный драйвер для нужной базы данных.
Найденный драйвер переводит запрос в понятный для базы данных формат и отправляет его в СУБД.
База данных выполняет запрос и возвращает результат обратно через все уровни:
Database → Database Driver → Driver Manager → JDBC API → Java-приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Что такое Spring Boot и чем он отличается от традиционного Spring Framework?
Spring Boot — это упрощённый и удобный фреймворк, построенный на основе Spring Framework. Он значительно облегчает разработку самодостаточных и готовых к продакшену Spring-приложений благодаря следующим особенностям:
🟠 Автоконфигурация – автоматически настраивает Spring и сторонние библиотеки в зависимости от присутствующих зависимостей в classpath.
🟠 Starter POMs – предоставляет готовые зависимости (starter'ы), упрощая конфигурацию сборки.
🟠 Встроенные серверы – включает встроенные сервера, такие как Tomcat и Jetty, устраняя необходимость в сторонних серверных контейнерах.
🟠 Без XML-конфигурации – активно использует аннотации, уменьшая количество шаблонного (boilerplate) кода.
Основное отличие от традиционного Spring Framework в том, что Spring Boot автоматизирует настройку, тогда как обычный Spring требует много ручной конфигурации.
👉 Новости 👉 База вопросов
Spring Boot — это упрощённый и удобный фреймворк, построенный на основе Spring Framework. Он значительно облегчает разработку самодостаточных и готовых к продакшену Spring-приложений благодаря следующим особенностям:
Основное отличие от традиционного Spring Framework в том, что Spring Boot автоматизирует настройку, тогда как обычный Spring требует много ручной конфигурации.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Зачем мы используем дженерики в Java?
🟠 Типовая безопасность: Предотвращает возникновение ошибки ClassCastException во время выполнения.
🟠 Повторное использование кода: Позволяет писать универсальные алгоритмы, которые работают с различными типами.
🟠 Проверка на этапе компиляции: Обнаруживает ошибки на этапе компиляции, а не во время выполнения.
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Может ли статический метод быть переопределенным или перегруженным?
Статический метод не может быть переопределен (override), так как он связан с классом, а не с объектом. Однако статический метод может быть перегружен (overloaded), если используются разные параметры.
👉 Новости 👉 База вопросов
Статический метод не может быть переопределен (override), так как он связан с классом, а не с объектом. Однако статический метод может быть перегружен (overloaded), если используются разные параметры.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
🥺 Параллелизм в Java
Параллельность (Concurrency) включает в себя управление несколькими потоками для одновременного выполнения задач, что критически важно для высокопроизводительных приложений
Как это работает?
1⃣ Инициализируем потоки.
2⃣ Проверяем, готовы ли они.
3⃣ Запускаем задачи одновременно.
4⃣ Дожидаемся завершения и закрываем потоки
👉 Новости 👉 База вопросов
Параллельность (Concurrency) включает в себя управление несколькими потоками для одновременного выполнения задач, что критически важно для высокопроизводительных приложений
Как это работает?
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 GIT Workflow
Хотите разобраться, как работает Git? Тогда держите наглядный гайд!
1⃣
2⃣
3⃣ Создание нового файла – добавляем что-то новое в проект
4⃣
5⃣
6⃣
👉 Новости 👉 База вопросов
Хотите разобраться, как работает Git? Тогда держите наглядный гайд!
Initial State
– начальное состояние проектаgit clone
– клонируем удаленный репозиторийgit add
. – отправляем изменения в staging areagit commit
– фиксируем изменения локальноgit push
– отправляем изменения на удаленный серверPlease open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Есть один отличный фреймворк — Javalin
Если нужно быстро запустить сервер или сделать небольшое приложение — самое то
Он позволяет настроить сервер легко и без лишних зависимостей. Все, что нужно для REST API или WebSocket — уже встроено.
Идеально для пет-проектов, микросервисов и прототипов
👉 Новости 👉 База вопросов
Если нужно быстро запустить сервер или сделать небольшое приложение — самое то
Он позволяет настроить сервер легко и без лишних зависимостей. Все, что нужно для REST API или WebSocket — уже встроено.
Идеально для пет-проектов, микросервисов и прототипов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Что означает ключевое слово final?
Ключевое слово
👉 Новости 👉 База вопросов
Ключевое слово
final
используется для обозначения, что объект, переменная или метод не могут быть изменены после их инициализации. Оно может быть применено к переменным, методам и классам.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
👍 Как работает Java? Понимание архитектуры языка
Когда мы пишем код на Java, он проходит несколько ключевых этапов перед тем, как стать работающей программой. Вот как это происходит:
1⃣ Написав программу, мы получаем исходный код в файле
2⃣ Этот код компилируется с помощью компилятора javac, который преобразует его в байт-код (.class). Это промежуточный формат, который понимает только JVM.
3⃣ JVM берет этот байт-код и запускает его, выполняя программу.
Внутри JVM происходит:
🟠 Загрузка классов с помощью
🟠 Управление памятью: разделение на Stack, Heap и Method Area.
🟠 Оптимизация с помощью JIT-компилятора, который превращает байт-код в машинный код для ускорения работы программы.
👉 Новости 👉 База вопросов
Когда мы пишем код на Java, он проходит несколько ключевых этапов перед тем, как стать работающей программой. Вот как это происходит:
.java
.Внутри JVM происходит:
ClassLoader
.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Команды Docker для Java-разработчика
1⃣ Проверка версии Docker
2⃣ Работа с образами
3⃣ Запуск Java-приложения в контейнере
4⃣ Сборка и запуск контейнера с Java Spring Boot
5⃣ Управление контейнерами
6⃣ Сетевое взаимодействие в Docker
7⃣ Docker Compose (Java + MySQL)
8⃣ Docker Volumes (персистентные данные)
9⃣ Очистка Docker
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM