TGViewer
Channel Public Channel
Java Developer

Java Developer

@java_tg

Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

Реклама на бирже: https://telega.in/c/java_tg
Subscribers
14.8K
Photos
2.2K
Videos
162
Links
2.5K

Showing posts older than #3077 · Back to latest

Older Posts 20 shown
Post #3076 3.39K
  • 😁 30
  • 🔥 6
  • ⚡ 2
  • ❤ 1
Post #3074 3.77K
Чем занят на работе тот самый коллега, который зарабатывает больше тебя:

📱 Java Developer | #memes
  • 😁 50
  • 🔥 6
  • ❤ 3
Post #3072 3.34K
👩‍💻 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 | Чат
  • 👍 15
  • ❤ 14
Post #3071 3.14K
  • 👍 7
  • ❤ 4
Post #3069 3.33K
Много среди нас опытных разработчиков?

📱 Java Developer | #memes
  • 🤣 53
  • 😁 9
  • 💯 3
  • 🔥 2
  • ❤ 1
Post #3067 3.35K
👩‍💻 Виртуальные потоки Java: разбор тестовых сценариев

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

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

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

📱 Java Developer | #статья
  • ❤ 8
  • 🔥 2
Post #3066 3.1K
  • ❤ 8
  • 😁 5
  • 🔥 1
Post #3062 3.36K
👩‍💻 Как я реализовал взаимодействие микросервисов — Kafka и gRpc

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

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

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

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


tags: #статья

📱 Java Developer | Чат
  • 👍 11
  • ❤ 3
  • 🔥 1
Post #3061 3.29K
❔ Вопрос с собеседования

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

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

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

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


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

📱 Java Developer | Чат
  • 🔥 11
  • 👍 7
  • ❤ 3
Post #3058 4.13K
👩‍💻 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1

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

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

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

tags: #статья

📱 Java Developer | Чат
  • ❤ 6
  • 🔥 1
Post #3057 3.53K
❔ Вопрос с собеседования

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

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

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

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

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

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


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

📱 Java Developer | Чат
  • ❤ 6
  • 👍 5
  • 🔥 1
Post #3056 4.15K
Разница между новичком и опытным разрабом 😆

📱 Java Developer | #memes
  • 🤣 46
  • 🔥 5
  • 😁 3
Post #3054 3.22K
👩‍💻 JNI (Java Native Interface)

JNI — это встроенный интерфейс, который позволяет Java-коду вызывать функции из C или C++ и работать с нативными библиотеками операционной системы.

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

Пример Java-класса:
public class HelloJNI {
public native void sayHello();
static {
System.loadLibrary("hello");
}
}


Соответствующая C-реализация:
#include <jni.h>
#include <stdio.h>
#include "HelloJNI.h"

JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject obj) {
printf("Hello from C!\n");
}

Функция Java_HelloJNI_sayHello должна строго соответствовать полному имени Java-класса и метода: Java_<ClassName>_<MethodName>.


Компиляция (Linux/macOS):
gcc -shared -fpic -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" -o libhello.so HelloJNI.c


Использовать JNI следует с осторожностью: ошибки в нативном коде могут привести к утечкам памяти, нарушению безопасности и краху JVM.

📌 JNI особенно полезен при работе с CUDA, OpenCV, аудиобиблиотеками, нативными API и при переносе существующего C/C++-кода в Java-приложение.


⛓ Ссылка на документацию

tags: #обучение

📱 Java Developer | Чат
  • 👍 11
  • ❤ 7
Post #3053 3.24K
❔ Вопрос с собеседования

Как работает volatile? Гарантирует ли он атомарность операций?

Ответ: Ключевое слово volatile в Java используется, чтобы обеспечить видимость изменений переменной между потоками. Оно гарантирует, что при изменении значения одним потоком другие потоки увидят актуальное значение сразу, а не из кэша. Также volatile предотвращает переупорядочивание инструкций, что важно для корректной синхронизации.

Однако volatile не обеспечивает атомарность операций. Это значит, что составные действия вроде инкремента (++) или проверки и установки значения всё равно требуют дополнительных механизмов синхронизации — например, synchronized или Atomic* классов.


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

📱 Java Developer | Чат
  • ❤ 9
  • 👍 5
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →