Java Learning
18.6K subscribers
1.62K photos
1 video
3 files
1K links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
➡️ Использование библиотеки Jinjava для рендеринга шаблонов в Java

Jinjava — это шаблонизатор для Java, основанный на синтаксисе Jinja, популярного в мире Python. Эта библиотека позволяет гибко рендерить HTML-шаблоны с поддержкой переменных, циклов, условий и фильтров.

Jinjava — отличный выбор для тех, кому нужно интегрировать мощный шаблонизатор с простым и понятным синтаксисом в свои Java-приложения.

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤‍🔥2
➡️ Использование библиотеки Picnic для форматирования таблиц в текстовом формате в Java

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

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

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤‍🔥1
Вопрос на собеседовании

Что такое "weak references" в Java и когда их стоит использовать?

Ответ ⬇️
Weak references (слабые ссылки) позволяют ссылаться на объекты, не предотвращая их сборку сборщиком мусора (GC). Если на объект осталась только слабая ссылка, GC сможет освободить его память, когда посчитает нужным. Это полезно в ситуациях, когда нужно избежать утечек памяти, но при этом объект не должен оставаться в памяти, если он больше не используется, как в кэширующих структурах данных или пуле объектов.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥2
➡️ Использование StructuredTaskScope для управления асинхронными задачами

StructuredTaskScope — это API, который упрощает управление группами асинхронных задач. Он позволяет легко запускать несколько задач параллельно и контролировать их выполнение, гарантируя, что все дочерние задачи будут завершены корректно, даже в случае ошибок.

🗣 Это отличное решение для обработки нескольких связанных задач, где важно, чтобы все задачи были завершены, или отменены вместе, если одна из них завершится с ошибкой.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
SonarJava

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Что будет выведено при выполнении кода?

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔11👍7
➡️ Использование библиотеки Jolt для трансформации JSON в Java

Jolt — это мощная библиотека для преобразования и манипуляции JSON-данными. Она позволяет описывать преобразования в виде спецификаций и легко применять их к JSON-структурам, что особенно удобно при интеграции данных.

Jolt — идеальный инструмент для случаев, когда необходимо трансформировать сложные JSON-данные.

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤‍🔥2
#Вопросы_с_собеседования
Если вы хотите переопределить equals(), какие условия должны удовлетворяться для переопределенного метода?

- Метод должен удовлетворять условиям транзитивности, рефлексивности и симметричности.

- Метод должен быть согласованным - многократные вызовы с неизменными объектами должны возвращать один и тот же результат.

- Если x.equals(y) вернёт true, то x.hashCode() должен быть равен y.hashCode().

- Метод не должен выбрасывать исключения при сравнении допустимых значений.


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤‍🔥1
➡️ Использование Sequenced Collections для упорядоченных коллекций

Sequenced Collections — интерфейс, который объединяет функциональность упорядоченных коллекций, таких как списки и наборы.

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

🗣 Это удобное API для работы с коллекциями, где требуется работа с последовательностями элементов.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
➡️ Использование библиотеки joor для упрощенной работы с рефлексией в Java

Joor — это легковесная библиотека для работы с рефлексией в Java, которая значительно упрощает использование этого мощного механизма.

✔️ Она предоставляет удобный API для создания экземпляров, вызова методов и доступа к полям классов, делая код более читаемым и компактным.

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5👍2🎄1
➡️ Использование библиотеки json-unit для тестирования JSON-ответов в Java

json-unit — это удобная библиотека для сравнения и тестирования JSON-данных в Java. Она поддерживает сравнение структуры, частичное совпадение данных и игнорирование несущественных различий, что делает её идеальной для тестирования API-ответов.

json-unit — отличный выбор для разработчиков, которым нужно тестировать и проверять сложные JSON-структуры.

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Вопрос на собеседовании

Что такое try-with-resources в Java, и как он улучшает управление ресурсами?

Ответ ⬇️
"Try-with-resources" — это конструкция, введенная в Java 7, которая автоматически закрывает ресурсы (например, файлы, потоки) после использования. Это помогает избежать утечек ресурсов и улучшает читаемость кода.

Пример использования ⚙️
Здесь BufferedReader автоматически закрывается после завершения блока try, даже если возникает исключение.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Main {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
➡️ Использование библиотеки Reactor для работы с реактивным программированием в Java

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

Reactor поддерживает функциональный стиль программирования и является основой для Spring WebFlux.

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Трюк с битовыми операциями

Этот код демонстрирует обмен значений двух переменных (a и b) без использования дополнительной временной переменной.

Он использует битовую операцию XOR (^). Ключевой момент здесь в том, что XOR двух одинаковых чисел возвращает 0, а XOR числа с 0 возвращает само это число. Таким образом, когда мы применяем XOR к a и b и затем обратно, мы фактически обмениваем их значения.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥5
В чем отличия между TreeSet и HashSet?

Основное отличие между TreeSet и HashSet заключается в том, что TreeSet хранит элементы в отсортированном порядке, в то время как порядок хранения элементов в HashSet не определен. TreeSet также обеспечивает быстрый поиск и извлечение элементов в отсортированном порядке.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤‍🔥2🔥1
➡️ Использование библиотеки JDBI3 для работы с базами данных

JDBI3 — это легковесная библиотека для удобного взаимодействия с базами данных. Она позволяет выполнять SQL-запросы и маппить результаты прямо на объекты Java.

JDBI3 упрощает работу с базами данных благодаря поддержке fluent-интерфейса.

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
➡️ Использование библиотеки Takari для создания плагинов Maven

Takari — это библиотека, предназначенная для упрощения разработки Maven-плагинов. Она предоставляет удобные инструменты для создания высокопроизводительных плагинов с минимальным количеством кода.

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
➡️ Использование блока try-with-resources для автоматического управления ресурсами в Java

Блок try-with-resources обеспечивает автоматическое закрытие ресурсов, таких как файлы, потоки, сокеты и другие, которые требуют освобождения после использования. Это упрощает управление ресурсами и помогает избежать утечек.

🗣 Полезно для работы с любыми ресурсами, которые реализуют интерфейс AutoCloseable.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
Вопрос на собеседовании

Что такое рефлексия в Java и в каких ситуациях она используется?

Ответ ⬇️
Рефлексия в Java — это механизм, который позволяет программе исследовать или изменять свою собственную структуру во время выполнения. С помощью рефлексии можно динамически создавать объекты, вызывать методы, получать информацию о классах, полях и методах, что особенно полезно при создании библиотек, фреймворков или инструментов для тестирования. Однако, из-за своей динамической природы, рефлексия может замедлить выполнение программы и нарушить безопасность, поэтому её использование должно быть обдуманным.

Пример использования ⚙️
import java.lang.reflect.iss.onethod;

public class ReflectionExample {
public void sayHello() {
System.out.println("Hello, world!");
}

public static void main(String[] args) throws Exception {
// Получаем класс через рефлексию
Class<?> clazz = ReflectionExample.class;

// Создаем экземпляр класса
Object instance = clazz.getDeclaredConstructor().newInstance();

// Получаем метод sayHello
Method method = clazz.getMethod("sayHello");

// Вызываем метод через рефлексию
method.invoke(instance); // Вывод: Hello, world!
}
}


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1