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
➡️ Использование паттерна "Цепочка обязанностей" (Chain of Responsibility) для обработки запросов

Паттерн "Цепочка обязанностей" позволяет передавать запросы по цепочке обработчиков, где каждый обработчик решает, обработать запрос или передать его дальше по цепочке.

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

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

🔗 Почитать подробнее

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

Helidon — это легковесная библиотека для создания реактивных микросервисов с использованием виртуальных потоков. Обеспечивает высокую производительность и простоту разработки.

Поддерживает асинхронные запросы.
Легко интегрируется с микросервисной архитектурой.

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

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

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

Оптимизирует запуск приложений.
Поддерживает интеграцию с нативными образами.

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

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

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

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

Fastutil поддерживает списки, множества, карты и другие структуры для примитивов.
Повышает эффективность работы с большими объемами данных.

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔1
➡️ Использование библиотеки Agrona для высокопроизводительных структур данных в Java

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

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

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Обработка изображений

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

К примеру, класс java.awt.BufferedImage который позволяет обрабатывать изображения каким угодно способом, хоть попиксельно.

Чтобы загрузить изображение из файла используют ImageIO::read, для записи — ImageIO::write.

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

Что такое «метод по умолчанию» в интерфейсах Java, и в каких случаях его использование оправдано?

Ответ ⬇️
Метод по умолчанию (default method) в интерфейсах Java предоставляет реализацию метода прямо в интерфейсе. Это позволяет расширять функциональность интерфейса без необходимости изменять все классы, которые его уже реализуют. Если класс реализует интерфейс, но не переопределяет метод по умолчанию, используется реализация интерфейса.

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


Пример использования ⚙️
interface Animal {
default void sound() {
System.out.println("Животное издает звук");
}
}

class Dog implements Animal {}

public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound(); // Животное издает звук
}
}


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥2
⚙️ Files.move()

В Java метод Files.move() из пакета java.nio.file используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой.

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
➡️ Использование Chronicle Map для распределенных ключ-значение хранилищ

Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем.

Поддерживает распределенные хранилища.
Минимальная задержка, высокая производительность.
Идеальна для финансовых и IoT-приложений.

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
⚙️ Stream.anyMatch()

В Java метод anyMatch() из Stream проверяет, удовлетворяет ли хотя бы один элемент условию. Отлично подходит для фильтрации и быстрого поиска.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤‍🔥2
👩‍💻 Задача по Java

Напишите метод findFirstNonRepeatingChar, который находит первый неповторяющийся символ в строке и возвращает его. Если такого символа нет, метод должен вернуть null. Решение должно быть оптимизировано по времени.

Пример:

System.out.println(findFirstNonRepeatingChar("swiss"));  // Вернёт 'w'
System.out.println(findFirstNonRepeatingChar("hello")); // Вернёт 'h'
System.out.println(findFirstNonRepeatingChar("aabbcc")); // Вернёт null


Решение задачи на картинке

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

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

Что такое функциональный интерфейс в Java, и как он используется в лямбда-выражениях?

Ответ ⬇️
Функциональный интерфейс в Java — это интерфейс с единственным абстрактным методом, который может использоваться как целевая конструкция для лямбда-выражений и ссылок на методы. Они помогают писать более чистый и выразительный код, позволяя передавать поведение (функции) как параметры. Аннотация @FunctionalInterface проверяет, что интерфейс соответствует требованиям функционального интерфейса и помогает избежать случайного добавления методов.

Пример использования ⚙️
@FunctionalInterface
interface MyFunctionalInterface {
void printMessage(String message);
}

public class Main {
public static void main(String[] args) {
MyFunctionalInterface printer = message -> System.out.println("Сообщение: " + message);
printer.printMessage("Привет, мир!"); // Сообщение: Привет, мир!
}
}


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥2
⚙️ Stream.allMatch()

В Java метод allMatch() из Stream проверяет, удовлетворяют ли все элементы условию. Полезен для валидации, например, чтобы убедиться, что все элементы имеют нужное значение.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
➡️ Сравнение методов get() и orElse() в Java Optional

Методы get() и orElse() в классе Optional оба служат для извлечения значения, но используются по-разному:

✔️ get() — возвращает значение, если оно присутствует, но выбрасывает NoSuchElementException, если значение отсутствует.
✔️ orElse() — возвращает значение, если оно присутствует, а если нет — указанное значение по умолчанию.

• Метод get() рекомендуется использовать, когда точно известно, что значение присутствует.
orElse() удобен для значений, которые могут отсутствовать.

🔗 Подробнее тут

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