Artipie
Artipie — это бесплатный инструмент управления двоичными артефактами, который позволяет вам создавать и управлять своими собственными частными репозиториями. Artipie построен на Java и может быть развернут на любой платформе, поддерживающей Java.
https://github.com/artipie/artipie
#для_продвинутых
Artipie — это бесплатный инструмент управления двоичными артефактами, который позволяет вам создавать и управлять своими собственными частными репозиториями. Artipie построен на Java и может быть развернут на любой платформе, поддерживающей Java.
https://github.com/artipie/artipie
#для_продвинутых
👍8❤1
Fastexcel
Fastexcel — это легкая и производительная библиотека Java для работы с файлами Excel. Она позволяет читать, создавать и модифицировать электронные таблицы XLSX, используя простой и понятный API.
#для_начинающих
Fastexcel — это легкая и производительная библиотека Java для работы с файлами Excel. Она позволяет читать, создавать и модифицировать электронные таблицы XLSX, используя простой и понятный API.
#для_начинающих
👍16🎄1
StreamEx
StreamEx — это библиотека для Java 8, которая расширяет возможности стандартного Stream API, добавляя новые операции, коллекторы и источники стримов.
#для_продвинутых
StreamEx — это библиотека для Java 8, которая расширяет возможности стандартного Stream API, добавляя новые операции, коллекторы и источники стримов.
#для_продвинутых
👍9😢1
FXGL
FXGL (FX Game Library) — это библиотека для разработки игр на Java, основанная на JavaFX 8. Она обеспечивает простой и удобный интерфейс для создания 2D-игр, а также включает в себя множество функций, необходимых для создания полноценных игр.
#для_продвинутых
FXGL (FX Game Library) — это библиотека для разработки игр на Java, основанная на JavaFX 8. Она обеспечивает простой и удобный интерфейс для создания 2D-игр, а также включает в себя множество функций, необходимых для создания полноценных игр.
#для_продвинутых
👍10❤1
LibGDX
LibGDX — это кроссплатформенный фреймворк для разработки 2D- и 3D-игр на Java. Он позволяет создавать игры для настольных компьютеров, мобильных устройств, веб-браузеров и даже консолей. LibGDX популярен среди разработчиков игр благодаря своей простоте использования, производительности и большому сообществу.
#для_продвинутых
LibGDX — это кроссплатформенный фреймворк для разработки 2D- и 3D-игр на Java. Он позволяет создавать игры для настольных компьютеров, мобильных устройств, веб-браузеров и даже консолей. LibGDX популярен среди разработчиков игр благодаря своей простоте использования, производительности и большому сообществу.
#для_продвинутых
👍11❤1
LITIENGINE
LITIENGINE — это бесплатный, открытый и простой 2D движок для игр на Java, созданный двумя баварскими братьями. Он состоит из двух компонентов:
— Легковесная Java-библиотека, предоставляющая базовую инфраструктуру игры.
— Специальный инструмент управления проектами и редактор карт utiLITI.
LITIENGINE предназначен для быстрого прототипирования и получения видимых результатов практически мгновенно.
#для_продвинутых
LITIENGINE — это бесплатный, открытый и простой 2D движок для игр на Java, созданный двумя баварскими братьями. Он состоит из двух компонентов:
— Легковесная Java-библиотека, предоставляющая базовую инфраструктуру игры.
— Специальный инструмент управления проектами и редактор карт utiLITI.
LITIENGINE предназначен для быстрого прототипирования и получения видимых результатов практически мгновенно.
#для_продвинутых
👍5
SnapKit
SnapKit — это современная библиотека пользовательского интерфейса Java, которая позволяет создавать богатые клиентские приложения Java, реализующие первоначальное обещание Java, работая безупречно и нативно на рабочем столе и в браузере (WORA).
#для_продвинутых
SnapKit — это современная библиотека пользовательского интерфейса Java, которая позволяет создавать богатые клиентские приложения Java, реализующие первоначальное обещание Java, работая безупречно и нативно на рабочем столе и в браузере (WORA).
#для_продвинутых
👍10
SWT
SWT (Standard Widget Toolkit) — это кроссплатформенный виджетный набор для Java, позволяющий создавать десктопные приложения с нативным интерфейсом. Он является частью проекта Eclipse и пользуется популярностью благодаря своей производительности, простоте использования и богатому набору функций.
#для_продвинутых
SWT (Standard Widget Toolkit) — это кроссплатформенный виджетный набор для Java, позволяющий создавать десктопные приложения с нативным интерфейсом. Он является частью проекта Eclipse и пользуется популярностью благодаря своей производительности, простоте использования и богатому набору функций.
#для_продвинутых
👍11
jGRASP
jGRASP — это бесплатная и легкая интегрированная среда разработки (IDE) для Java, которая фокусируется на автоматической генерации визуализаций для улучшения понимания кода.
#для_продвинутых
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
#Вопросы_с_собеседования
Дайте определение терминам «простой», «составной» (composite), «потенциальный» (candidate) и «альтернативный» (alternate) ключ.
Простой ключ состоит из одного атрибута (поля). Составной - из двух и более.
Потенциальный ключ - простой или составной ключ, который уникально идентифицирует каждую запись набора данных. При этом потенциальный ключ должен обладать критерием неизбыточности: при удалении любого из полей набор полей перестает уникально идентифицировать запись.
Из множества всех потенциальных ключей набора данных выбирают первичный ключ, все остальные ключи называют альтернативными.
Дайте определение терминам «простой», «составной» (composite), «потенциальный» (candidate) и «альтернативный» (alternate) ключ.
Простой ключ состоит из одного атрибута (поля). Составной - из двух и более.
Потенциальный ключ - простой или составной ключ, который уникально идентифицирует каждую запись набора данных. При этом потенциальный ключ должен обладать критерием неизбыточности: при удалении любого из полей набор полей перестает уникально идентифицировать запись.
Из множества всех потенциальных ключей набора данных выбирают первичный ключ, все остальные ключи называют альтернативными.
👍7
Что такое «фреймворк Fork/Join»?
Фреймворк
• Этап
• Этап
Решение всех подзадач (в т.ч. и само разбиение на подзадачи) происходит параллельно.
Для решения некоторых задач этап Join не требуется. Например, для параллельного
Ещё одно замечательное преимущество этого фреймворка заключается в том, что он использует
Фреймворк
Fork/Join, представленный в JDK 7, - это набор классов и интерфейсов позволяющих использовать преимущества многопроцессорной архитектуры современных компьютеров. Он разработан для выполнения задач, которые можно рекурсивно разбить на маленькие подзадачи, которые можно решать параллельно.• Этап
Fork: большая задача разделяется на несколько меньших подзадач, которые в свою очередь также разбиваются на меньшие. И так до тех пор, пока задача не становится тривиальной и решаемой последовательным способом.• Этап
Join: далее (опционально) идёт процесс «свёртки» - решения подзадач некоторым образом объединяются пока не получится решение всей задачи.Решение всех подзадач (в т.ч. и само разбиение на подзадачи) происходит параллельно.
Для решения некоторых задач этап Join не требуется. Например, для параллельного
QuickSort — массив рекурсивно делится на всё меньшие и меньшие диапазоны, пока не вырождается в тривиальный случай из 1 элемента. Хотя в некотором смысле Join будет необходим и тут, т.к. всё равно остаётся необходимость дождаться пока не закончится выполнение всех подзадач.Ещё одно замечательное преимущество этого фреймворка заключается в том, что он использует
work-stealing алгоритм: потоки, которые завершили выполнение собственных подзадач, могут «украсть» подзадачи у других потоков, которые всё ещё заняты.👍6
#вопросы_с_собеседований
Как узнать значение конкретного символа строки, зная его порядковый номер в строке?
Чтобы узнать значение конкретного символа в строке по его порядковому номеру, можно воспользоваться методом charAt(int index) класса String.
Этот метод возвращает символ, расположенный в строке по указанному индексу. Индексы нумеруются от 0 до длины строки минус 1.
Если переданный индекс находится вне диапазона длины строки, будет выброшено исключение IndexOutOfBoundsException.
Как узнать значение конкретного символа строки, зная его порядковый номер в строке?
Этот метод возвращает символ, расположенный в строке по указанному индексу. Индексы нумеруются от 0 до длины строки минус 1.
Если переданный индекс находится вне диапазона длины строки, будет выброшено исключение IndexOutOfBoundsException.
👍12❤3
#Вопросы_с_собеседования
Что такое сигнатура метода?
Это уникальная строка, которая описывает типы и порядок аргументов, а также возвращаемый тип метода. Сигнатура используется компилятором Java для различения методов с одинаковым именем, но отличающихся по своим параметрам.
Что такое сигнатура метода?
👍9
conductor-oss/conductor
Conductor - это платформа, изначально созданная в Netflix для оркестровки микросервисов и событий, написанный на Java.
Conductor OSS поддерживается командой разработчиков в Orkes вместе с членами сообщества с открытым исходным кодом.
https://github.com/conductor-oss/conductor
Conductor - это платформа, изначально созданная в Netflix для оркестровки микросервисов и событий, написанный на Java.
Conductor OSS поддерживается командой разработчиков в Orkes вместе с членами сообщества с открытым исходным кодом.
git remote set-url origin https://github.com/conductor-oss/conductorhttps://github.com/conductor-oss/conductor
👍2
#вопросы_с_собеседований
Может ли метод main выбросить исключение во вне и если да, то где будет происходить обработка данного исключения?
Метод main может выбросить исключение. Это исключение будет передано в JVM (виртуальную машину Java). JVM отловит это исключение и завершит выполнение программы, выведя stack trace (трассировку стека) исключения.
Таким образом, исключение из main приведет к аварийному завершению программы.
Чтобы избежать этого, лучшей практикой является перехватывать исключения внутри main и обрабатывать их, не допуская выброса за его пределы.
Может ли метод main выбросить исключение во вне и если да, то где будет происходить обработка данного исключения?
Таким образом, исключение из main приведет к аварийному завершению программы.
Чтобы избежать этого, лучшей практикой является перехватывать исключения внутри main и обрабатывать их, не допуская выброса за его пределы.
👍10
Принципы SOLID, только понятно
Принципы S.O.L.I.D. — это 5 принципов, которые желательно принять во внимание программисту.
Смотреть статью
Принципы S.O.L.I.D. — это 5 принципов, которые желательно принять во внимание программисту.
Смотреть статью
Хабр
Принципы SOLID, только понятно
Когда я только знакомился с SOLID, я искал понятные статьи об этих принципах на Хабр. При этом пришлось прочитать не одну статью, и полное понимание пришло сильно позже. Хотелось бы, чтобы новички на...
👍15❤1