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

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Алгоритм Бойера-Мура-Хорспула

Данный алгоритм также известен под названием алгоритм Бойера-Мура-Хорспула. Процедура алгоритма очень простая. Сначала строится таблица смещений для каждого символа. Затем исходная строка и шаблон совмещаются по началу, сравнение ведется по последнему символу.

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

И так далее, пока не шаблон полностью не совпадет с подстрокой исходной строки, или не будет достигнут конец строки.

#для_продвинутых
👍10😱2
Какой из этих методов возвращает описание исключения?
Anonymous Quiz
21%
getException()
63%
getMessage()
5%
obtainDescription()
6%
obtainException()
6%
Посмотреть ответ
👍15
Жадный алгоритм

Жадный алгоритм (greedy algorithm) — это алгоритм, который на каждом шаге делает локально оптимальный выбор, в надежде, что итоговое решение будет оптимальным.

Алгоритм работает следующим образом:


Инициализируем minPrice максимальным значением. Затем перебираем все цены акций. На каждом шаге обновляем minPrice, если текущая цена меньше, чем minPrice, и maxProfit, если разница между текущей ценой и minPrice больше, чем maxProfit. Возвращаем maxProfit.

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

#для_продвинутых
👍141
Сортировка расческой

Сортировка расческой (Comb sort) — алгоритм сортировки, являющийся улучшенной версией сортировки пузырьком. Он работает быстрее, чем сортировка пузырьком, но медленнее, чем более продвинутые алгоритмы, такие как быстрая сортировка.

1. Начинаем с шага, равного длине массива.
2. Сравниваем элементы массива, находящиеся на расстоянии шаг друг от друга.
3. Если элемент слева больше, чем элемент справа, то мы их переставляем.
4. Уменьшаем шаг, деля его на 1.3 (или другую константу).
5. Повторяем шаги 2-4, пока шаг не станет меньше 1.

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

Fluent Interface (Текучий интерфейс) — это шаблон проектирования, который позволяет создавать код, читающийся как текст на естественном языке.

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

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

Worker Thread (рабочий поток) — это обычный поток, который выполняет задачи в фоновом режиме, отдельно от главного потока приложения.

Использование Worker Thread:

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

#для_начинающих
👍15😱1
Стирание типов

Стирание типов (type erasure) — это процесс, при котором информация о типах параметризованных типов (generic types) удаляется во время компиляции и не сохраняется во время выполнения программы.

#для_начинающих
👍16🤔2
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