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
dOOv

dOOv (Domain Object Oriented Validation) — это фреймворк для Java, который позволяет легко и удобно выполнять валидацию и отображение объектов предметной области. Он использует аннотации, генерацию кода и DSL с безопасной типизацией, что делает процесс валидации и отображения быстрым и простым.

#для_продвинутых
👍10😱2
JMapper

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

Простота использования: JMapper имеет простой и понятный API, основанный на аннотациях.
Эффективность: JMapper оптимизирован для производительности и может выполнять преобразования объектов очень быстро.
Гибкость: JMapper поддерживает различные типы преобразований.

#для_продвинутых
👍211
Ehcache

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

#для_продвинутых
👍14😱1
Infinispan

Infinispan — это масштабируемая, высокодоступная платформа для хранения данных типа ключ-значение, написанная на Java и распространяемая под свободной лицензией (Apache License 2.0). Основная область применения Infinispan — распределенный кэш, но также её применяют как KV-хранилище в базах данных типа NoSQL.

Платформа поддерживает два способа запуска: развертывание в качестве отдельно-стоящего сервера / кластера серверов и использование в виде встроенной библиотеки для расширения функций основного приложения.

#для_продвинутых
👍8
Geci

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

Geci имеет простой API, который делает генерацию кода Java простой и понятной. Также он может генерировать широкий спектр кода Java, включая классы, методы, интерфейсы и аннотации.

Эту библиотеку можно использовать для генерации кода Java как из исходного кода Java, так и из других источников, таких как XML или JSON. Geci можно расширить с помощью пользовательских генераторов кода.

#для_продвинутых
👍12🤔4
Telosys

Telosys — это генератор кода, который позволяет создавать код Java, JavaScript, Python, NodeJS, PHP, C#, JavaEE, Spring, JAX-RS, VueJS, Angular, JPA и других языков программирования. Он работает с двумя типами моделей:

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

Telosys обладает возможностями создания каркасов, что позволяет генерировать CRUD-экраны или REST-бэкэнд в течение нескольких минут.

#для_продвинутых
👍12
HyperMinHash-java

HyperMinHash-java — это библиотека Java, реализующая алгоритм HyperMinHash, который используется для
приблизительного сравнения наборов данных. Библиотека позволяет cоздавать эскизы наборов данных, cравнивать эскизы, oбъединять эскизы,

#для_продвинутых
👍6😢1
Derive4j

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

#для_продвинутых
🤔10👍2
ANTLR

ANTLR (ANother Tool for Language Recognition) — это генератор парсеров, который позволяет создавать парсеры для различных языков программирования, включая Java. Он основан на LL(*) грамматиках, которые определяют правила языка.

#для_продвинутых
👍101
Lombok

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

#для_продвинутых
👍27
Bytecode-viewer

Bytecode-viewer — это инструмент, который позволяет просматривать байт-код Java-классов. Байт-код - это машинный код, который получается после компиляции Java-кода. Он представляет собой набор инструкций, которые интерпретатор Java Virtual Machine (JVM) использует для выполнения программы.

#для_продвинутых
👍15
Jansi

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

#для_продвинутых
👍19
Узнаем продолжительность аудио файла

Ответ на картинке.
👍16
#вопросы_с_собеседований
Что будет, если в Map положить два значения с одинаковым ключом?

Если в Map положить два значения с одинаковым ключом, то произойдет следующее:

— При добавлении второго значения с уже существующим ключом, первое значение, связанное с этим ключом, будет перезаписано.

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

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

Таким образом, поведение в такой ситуации зависит от конкретной реализации интерфейса Map, но в целом дублирующиеся ключи в Map запрещены.
👍17😱4
#вопросы_с_собеседований
Может ли метод принимать аргументы переменной длины?

В Java метод может принимать переменное количество аргументов двумя основными способами:

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

— Используя специальный синтаксис с многоточием. При определении метода один из параметров объявляется с многоточием после типа. Это говорит компилятору, что это параметр переменной длины. При вызове в него можно передать сколько угодно аргументов указанного типа.

Таким образом метод становится более гибким и его можно вызывать с разным количеством аргументов в зависимости от ситуации. Это избавляет от необходимости перегружать метод для разного числа параметров.
👍212
#вопросы_с_собеседований
Что может произойти если два потока будут выполнять один и тот же код в программе?

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

Чтобы избежать таких проблем, нужно предотвратить одновременный доступ к общим данным с помощью синхронизации, например используя мониторы или блокировки.
Также полезны инструменты высокого уровня для синхронизации, такие как семафоры, очереди производителя-потребителя и другие коллекции из java.util.concurrent.

Важно тщательно продумывать доступ к общим данным в многопоточных приложениях, чтобы избежать некорректного поведения. Хороший дизайн многопоточности поможет создать надежное и эффективное приложение.
👍19🤔1
Bazel

Bazel — это инструмент сборки с открытым исходным кодом, который используется для сборки и тестирования программного обеспечения на разных платформах. Он может использоваться для сборки проектов Java, а также других языков программирования, таких как C++, Python и Go.

#для_продвинутых
👍12🔥1
Lanterna

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

#для_продвинутых
👍15
RefactorFirst

RefactorFirst — это инструмент для Java-кода, помогающий определить и расставить по приоритетам классы, которые следует рефакторить в первую очередь. Он работает, сканируя код на наличие «божественных классов» (God Classes) и классов с высокой степенью связности.

«Божественных классов» — это классы, которые делают слишком много и, следовательно, являются плохо спроектированными. Они могут быть трудными для понимания, тестирования и сопровождения.

#для_продвинутых
👍10
SonarJava

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

#для_продвинутых
👍16