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
OptaPlanner

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

https://github.com/apache/incubator-kie-optaplanner

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

FastCSV — это высокопроизводительная, соответствующая RFC и не требующая зависимостей библиотека CSV для Java. Она является одной из самых популярных библиотек CSV для Java на GitHub.

https://github.com/osiegmar/FastCSV

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

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

https://opencsv.sourceforge.net/

#для_продвинутых
👍6
uniVocity-parsers

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

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

Apache ORC (Optimized Row Columnar) — это формат файлов, предназначенный для эффективного хранения больших наборов данных в Hadoop и других экосистемах Big Data. Он использует колоночный формат хранения, который оптимизирован для сжатия, чтения и записи данных. ORC является популярным выбором для хранения данных Hadoop благодаря своей производительности, масштабируемости и гибкости.

#для_продвинутых
👍8
Как начать писать на Java в VSCode

Смотреть статью
👍8😁1🤔1
Artipie

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

https://github.com/artipie/artipie

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

Fastexcel — это легкая и производительная библиотека Java для работы с файлами Excel. Она позволяет читать, создавать и модифицировать электронные таблицы XLSX, используя простой и понятный API.

#для_начинающих
👍16🎄1
StreamEx

StreamEx — это библиотека для Java 8, которая расширяет возможности стандартного Stream API, добавляя новые операции, коллекторы и источники стримов.

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

FXGL (FX Game Library) — это библиотека для разработки игр на Java, основанная на JavaFX 8. Она обеспечивает простой и удобный интерфейс для создания 2D-игр, а также включает в себя множество функций, необходимых для создания полноценных игр.

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

LibGDX — это кроссплатформенный фреймворк для разработки 2D- и 3D-игр на Java. Он позволяет создавать игры для настольных компьютеров, мобильных устройств, веб-браузеров и даже консолей. LibGDX популярен среди разработчиков игр благодаря своей простоте использования, производительности и большому сообществу.

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

LITIENGINE — это бесплатный, открытый и простой 2D движок для игр на Java, созданный двумя баварскими братьями. Он состоит из двух компонентов:

— Легковесная Java-библиотека, предоставляющая базовую инфраструктуру игры.
— Специальный инструмент управления проектами и редактор карт utiLITI.

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

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

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

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

SWT (Standard Widget Toolkit) — это кроссплатформенный виджетный набор для Java, позволяющий создавать десктопные приложения с нативным интерфейсом. Он является частью проекта Eclipse и пользуется популярностью благодаря своей производительности, простоте использования и богатому набору функций.

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

jGRASP — это бесплатная и легкая интегрированная среда разработки (IDE) для Java, которая фокусируется на автоматической генерации визуализаций для улучшения понимания кода.

#для_продвинутых
👍4
Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?

• При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass).
• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.
• Можно сузить возвращаемое значение, если они совместимы.
Например:

public class Animal {

public Animal eat() {
System.out.println("animal eat");
return null;
}

public Long calc() {
return null;
}

}
public class Dog extends Animal {

public Dog eat() {
return new Dog();
}
/*attempting to use incompatible return type
public Integer calc() {
return null;
}
*/
}
👍5
Быстрое нахождение чисел Фибоначчи

Смотреть статью
👍9
#Вопросы_с_собеседования
Дайте определение терминам «простой», «составной» (composite), «потенциальный» (candidate) и «альтернативный» (alternate) ключ.

Простой ключ состоит из одного атрибута (поля). Составной - из двух и более.

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

Из множества всех потенциальных ключей набора данных выбирают первичный ключ, все остальные ключи называют альтернативными.
👍7
Что такое «фреймворк Fork/Join»?

Фреймворк Fork/Join, представленный в JDK 7, - это набор классов и интерфейсов позволяющих использовать преимущества многопроцессорной архитектуры современных компьютеров. Он разработан для выполнения задач, которые можно рекурсивно разбить на маленькие подзадачи, которые можно решать параллельно.

• Этап Fork: большая задача разделяется на несколько меньших подзадач, которые в свою очередь также разбиваются на меньшие. И так до тех пор, пока задача не становится тривиальной и решаемой последовательным способом.
• Этап Join: далее (опционально) идёт процесс «свёртки» - решения подзадач некоторым образом объединяются пока не получится решение всей задачи.
Решение всех подзадач (в т.ч. и само разбиение на подзадачи) происходит параллельно.

Для решения некоторых задач этап Join не требуется. Например, для параллельного QuickSort — массив рекурсивно делится на всё меньшие и меньшие диапазоны, пока не вырождается в тривиальный случай из 1 элемента. Хотя в некотором смысле Join будет необходим и тут, т.к. всё равно остаётся необходимость дождаться пока не закончится выполнение всех подзадач.

Ещё одно замечательное преимущество этого фреймворка заключается в том, что он использует work-stealing алгоритм: потоки, которые завершили выполнение собственных подзадач, могут «украсть» подзадачи у других потоков, которые всё ещё заняты.
👍6