Java Developer
16.1K subscribers
1.58K photos
118 videos
2 files
1.72K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Вопрос с собеседования

Как устроен Message в Kafka?

Ответ:
Сообщение в Kafka — это единица данных, которую продюсер отправляет в топик. Каждое сообщение состоит из следующих компонентов:

Ключ (key) — используется для распределения сообщений по партициям. Сообщения с одинаковым ключом попадают в одну партицию.

Значение (value) — основное содержимое сообщения, например строка, JSON, байты и т.п.

Метаданные — включают смещение (offset), временную метку, имя топика и номер партиции.

Все сообщения в партиции упорядочены и неизменяемы. Kafka хранит их как commit log и позволяет читать данные повторно, начиная с любого смещения.


tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥1
👩‍💻 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1

В статье объясняется, почему Spring Data JPA может тормозить: рассматриваются причины вроде open-in-view, ленивой инициализации, неправильной настройки DataSource и медленных JOIN-ов.

Автор на примерах показывает, как выявить проблемные места и оптимизировать конфигурацию, чтобы избавиться от неожиданных лагов и блокировок.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁57🤣18🔥6
Вопрос с собеседования

Docker — что это и для чего используется?

Ответ: Docker — это инструмент, который позволяет упаковывать приложение вместе со всеми его зависимостями в изолированный контейнер.

Такой контейнер можно запускать на любом сервере, где установлен Docker, независимо от операционной системы или конфигурации. Это упрощает переносимость, ускоряет развертывание и обеспечивает стабильную работу приложения в любом окружении — от локальной машины до облака.

Docker активно используется для автоматизации сборки, тестирования и доставки программ, особенно в микросервисной архитектуре и CI/CD-процессах.


tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍73
👩‍💻 Как я реализовал взаимодействие микросервисов — Kafka и gRpc

В предыдущей части автор построил REST API для сервиса инцидентов на Java и Spring.

В этой статье он реализует микросервис изображений с использованием S3-хранилища и показывает два способа взаимодействия между сервисами — асинхронный через Kafka и синхронный с помощью gRPC.

Читать статью

🔖 Предыдущая часть — КЛИК


tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥1
Что выведет код сверху?
Anonymous Quiz
7%
0
57%
1
7%
2
29%
4
7😁5🔥1
👩‍💻 Виртуальные потоки Java: разбор тестовых сценариев

В статье рассматриваются виртуальные потоки, появившиеся в Java начиная с версии 21.

Автор проводит сравнительные тесты виртуальных потоков и традиционных потоков, анализируя их влияние на производительность и управление параллелизмом в приложениях.

Ссылка на статью

📱 Java Developer | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥2
Много среди нас опытных разработчиков?

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣52😁8💯3🔥21
Под какой буквой правильный ответ?
Anonymous Quiz
47%
A
39%
B
7%
C
7%
D
👍74
👩‍💻 10 Java-однострочников — от вредных до полезных

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

Ниже — градация от “никогда так не делайте” до “можно и нужно применять”.

Поменять две переменные местами:
a = a + b - (b = a);


❗️ Получить случайный элемент:
list.get(new Random().nextInt(list.size()));


❗️ Прочитать все строки из файла:
Files.readAllLines(Path.of("file.txt"));


❗️ Проверить палиндром:
str.equals(new StringBuilder(str).reverse().toString());


Удалить null-значения:
list.removeIf(Objects::isNull);


Создать неизменяемый список:
List.of("Java", "Developer");


Найти максимум из двух чисел:
Math.max(a, b);


Объединить список в строку:
String.join(", ", fruits);


Посчитать совпадения:
list.stream().filter(x -> x > 10).count();


Отсортировать по убыванию:
list.sort(Comparator.reverseOrder());


Знаете ещё? Пишите в комментах 👇

tags: #обучение

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍14
This media is not supported in your browser
VIEW IN TELEGRAM
Чем занят на работе тот самый коллега, который зарабатывает больше тебя:

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁49🔥63
Что выведет код сверху?
Anonymous Quiz
15%
D
13%
CD
37%
DE
3%
CDE
31%
abcde
😁29🔥621
👩‍💻 Запросы к MongoDB из Java с помощью билдера фильтров

В статье показано, как с помощью класса Filters удобно строить фильтры для запросов к MongoDB — например, искать документы по условию, диапазону или списку значений.

Примеры охватывают методы eq, gt, in, or, regex и другие, с пояснениями и готовыми сниппетами кода.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33😁158
Вопрос с собеседования

Может ли интерфейс содержать поля?

Ответ: Да, но только постоянные значения. Любое поле в интерфейсе автоматически становится public static final, то есть это всегда константа, общая для всех.

Интерфейс не может содержать обычные переменные, потому что он не хранит состояние объектов — только описывает поведение.


tags: #собеседование

📱 Java Developer  | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍206🔥6
👩‍💻 Bazel

Bazel — это высокопроизводительный инструмент сборки от Google, подходящий для Java-проектов любой сложности.

Используется для быстрой, воспроизводимой и масштабируемой сборки, особенно в больших кодовых базах и CI.

Пример java_binary в BUILD-файле:
java_binary(
name = "app",
srcs = ["Main.java"],
deps = [":core"],
main_class = "com.example.Main"
)


Maven-зависимости подключаются через rules_jvm_external и описываются в WORKSPACE-файле.

📱 Ссылка на GitHub
📁 Документация

— если использовал
⚡️ — если Gradle лучше

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍63