Telegram Web Link
🖥 Apache SeaTunnel — высокопроизводительный распределенный инструмент интеграции данных

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

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 webmagic — масштабируемый фреймворк веб-краулера для Java

webmagic охватывает весь жизненный цикл краулера: загрузку, управление url, извлечение контента и его сохранение.

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Vert.x — это набор инструментов для создания реактивных приложений на JVM

Ядро Vert.x содержит достаточно низкоуровневую функциональность, включая поддержку HTTP, TCP, доступ к файловой системе и различные другие возможности. Можно использовать Vert.x непосредственно в своих приложениях.

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Apache Zeppelin — веб-блокнот, позволяющий работать с данными на SQL, Scala и ещё 20+ языках

Apache Zeppelin — веб-блокнот на Java, позволяющий проводить интерактивную аналитику данных и создавать совместные документы с использованием SQL, Scala и других языков.

Быстрый старт с помощью Docker:
docker run -p 8080:8080 --rm --name zeppelin apache/zeppelin:0.11.1

🖥 GitHub
🟡 Страничка Apache Zeppelin

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 LWJGL — это open-source Java-библиотека, обеспечивающая кроссплатформенный доступ к популярным нативным API, полезным при разработке графических (OpenGL, Vulkan, bgfx), аудио (OpenAL, Opus), параллельных (OpenCL, CUDA) и XR (OpenVR, LibOVR, OpenXR) приложений

Доступ, предоставляемый библиотекой LWJGL, является высокопроизводительным, но в то же время обернут в безопасный для типов и удобный для пользователя слой, подходящий для экосистемы Java.

🖥 GitHub
🟡 Быстрый старт

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 OpenSearch — распределенный RESTful поисковой движок на Java с открытым исходным кодом

OpenSearch — это комьюнити-форк Elasticsearch и Kibana с открытым исходным кодом.
Движок активно поддерживается и развивается.

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Portfolio Performance — open-source инструмент на Java для расчета общей эффективности инвестиционного портфеля

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

Обновляет исторические котировки по данным из различных источников: Yahoo Finance, Finnhub.io, Quandl или AlphaVantage.
При желании можно настроить получение котировок с нужных HTML-страниц или из JSON-документов.

Все данные хранятся в XML для дальнейшей обработки и могут быть экспортированы в CSV или JSON.

🖥 GitHub
🟡 Страничка Portfolio Performance

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 45 интересных фактов о Java

С момента своего создания в начале 90-х годов и до сегодняшнего дня, Java остается одним из самых популярных и востребованных языков программирования в мире.
Давайте предадимся ностальгии, поговорим о 45 известных и не очень фактов о Java
Уверен, будет интересно даже Java-гуру, поехали!

〰️ Основы и история
🟡Java была создана в 1995 году компанией Sun Microsystems.

🟡Изначально язык назывался «Oak», в честь дуба, росшего около офиса его создателей.

🟡Цель создания Java — возможность запуска программ на любом устройстве без изменений кода.

🟡Девиз Java: «Write Once, Run Anywhere» (WORA) — напиши один раз, запусти везде.

🟡Создатель Java — Джеймс Гослинг.

🟡В 2010 году Oracle Corporation приобрела Sun Microsystems, став владельцем Java.

🟡Java — объектно-ориентированный язык программирования.


〰️ Версии и обновления
🟡Java имеет 2 основные редакции: Standard Edition (SE) и Enterprise Edition (EE).

🟡С 2017 года Oracle перешла на регулярный 6-месячный цикл обновлений Java.

🟡Java 8 стала революционным обновлением благодаря введению лямбда-выражений и потоков.


〰️ Технические особенности
🟡JVM (Java Virtual Machine) — основа платформы Java, позволяющая Java-программам запускаться на любом устройстве.

🟡Garbage Collector в Java автоматически управляет памятью, освобождая программиста от необходимости явного освобождения памяти.

🟡Java Development Kit (JDK) содержит инструменты для разработки и тестирования программ на Java.

🟡Java Runtime Environment (JRE) включает в себя JVM и библиотеки классов Java, необходимые для запуска Java-приложений.

🟡Система управления пакетами в Java называется Maven и Gradle.

📎 Читать остальные факты о Java

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Вышла интегрированная среда разработки Apache NetBeans 22

29 мая 2024 года состоялся релиз интегрированной среды разработки Apache NetBeans 22. Проект имеет поддержку языков программирования Java SE, Java EE, PHP, C/C++, JavaScript, Rust и Groovy.

Готовые сборки NetBeans 22 в ближайшее время будут сформированы для скачивания под Linux (snapcraft.io, flathub), Windows и macOS.

🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Вызов Python-скрипта из кода на Java

Иногда чтобы не переделывать любимые костыли необходимо вызывать Python-скрипты из нашего Java-кода. Это можно сделать с помощью классов Process, ProcessBuilder и Jython. Давайте рассмотрим, как мы можем использовать каждый из них.

▶️ Поехали

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Charset: почему имена не константы? Решение проблемы

🔜 Итак, сразу к делу. В Java наименования кодировок реализованы таким образом, что могут обеспечить гибкость выполнения программы, позволяя легко адаптироваться к возникающим новым кодировкам без необходимости её перекомпиляции. Для надёжного получения экземпляра кодировки, используйте метод Charset.forName("название_кодировки"). Если искомая кодировка присутствует в системе, её можно будет успешно найти, иначе будет вызвано исключение UnsupportedCharsetException.

Пример использования:
// UTF-8 кодировка
Charset charset = Charset.forName("UTF-8");

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


🔜 Эволюция обработки кодировок в Java

JDK 1.4 — эра Charset. Начиная с JDK 1.4, Java внесла значительные изменения в работу с кодировками, введя класс Charset в пакет java.nio. Это послужило началом движения в сторону более структурированного и универсализированного API.

Java 7 — стандартизация кодировок. Продолжая развивать идеи обработки текстовых данных, в Java 7 был внедрен класс StandardCharsets, который предоставил разработчикам стандартизированные ссылки на часто используемые кодировки.

Поддержка кодировок может варьироваться в зависимости от платформы. Java, в свою очередь, обеспечивает поддержку определённых кодировок, таких как UTF-8 и ISO-8859-1. Класс Charset служит для проверки доступности кодировок на текущей системе.


🔜 Преимущества использования констант и экземпляров Charset

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

Переход к экземплярам Charset предполагает использование строгой типизации вместо включения строковых литералов, что делает взаимодействие внутри кода надёжнее и упрощает коммуникацию в команде.

📎 Читать подробнее

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Циклический связанный список — Java-реализация

Циклический связанный список — это вариант связанного списка, в котором последний узел указывает на первый узел, завершая полный круг узлов.
Другими словами, этот вариант связанного списка не имеет пустого элемента в конце.

Благодаря этому простому изменению мы получаем некоторые преимущества:
— Любой узел в кольцевом связанном списке может быть отправной точкой.
— Следовательно, весь список можно пройти, начиная с любого узла.
— Поскольку последний узел кругового связанного списка имеет указатель на первый узел, легко выполнять операции постановки в очередь и удаления из очереди.
В целом, это очень полезно при реализации структуры данных "очередь".

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

▶️ Поехали к реализации циклического связанного списка

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2024/09/29 05:21:28
Back to Top
HTML Embed Code: