29 мая 2024 года состоялся релиз интегрированной среды разработки Apache NetBeans 22. Проект имеет поддержку языков программирования Java SE, Java EE, PHP, C/C++, JavaScript, Rust и Groovy.
Готовые сборки NetBeans 22 в ближайшее время будут сформированы для скачивания под Linux (snapcraft.io, flathub), Windows и macOS.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Charset.forName("название_кодировки")
. Если искомая кодировка присутствует в системе, её можно будет успешно найти, иначе будет вызвано исключение UnsupportedCharsetException
.Пример использования:
// UTF-8 кодировка
Charset charset = Charset.forName("UTF-8");
Таким образом, в 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
служит для проверки доступности кодировок на текущей системе.Использование предопределенных констант, таких как в классе
StandardCharsets
, помогает избежать дублирования и упрощает навигацию по кодовой базе.Переход к экземплярам
Charset
предполагает использование строгой типизации вместо включения строковых литералов, что делает взаимодействие внутри кода надёжнее и упрощает коммуникацию в команде.@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Другими словами, этот вариант связанного списка не имеет пустого элемента в конце.
— Любой узел в кольцевом связанном списке может быть отправной точкой.
— Следовательно, весь список можно пройти, начиная с любого узла.
— Поскольку последний узел кругового связанного списка имеет указатель на первый узел, легко выполнять операции постановки в очередь и удаления из очереди.
В целом, это очень полезно при реализации структуры данных "очередь".
С обычными связанными списками это линейная операция.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Отличная демонстрация принципов SOLID на Java, к каждому пункту приведён антипаттерн «как делать не нужно»
А вот и расшифровка самого акронима SOLID, повторить лишним не будет
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
—
brew install jsonschema2pojo
Можно использовать jsonschema2pojo как плагин Maven, задачу Ant, как утилиту командной строки, плагин Gradle или встроить в собственное Java-приложение.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Learning Technologies, разработчики CheerpJ, среды для запуска приложений Java внутри браузеров, относительно недавно выпустили третью версию инструмента. По их словам, это «полная переработка CheerpJ, основанная на уроках, извлечённых за 7 лет его использования».
CheerpJ — полноценная виртуальная машина Java на основе WebAssembly. Её авторы уточняют, что благодаря множеству архитектурных инноваций CheerpJ 3.0 — чрезвычайно мощный инструмент, предназначенный для корпоративных приложений.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
cd $HOME
wget https://github.com/pmd/pmd/releases/download/pmd_releases%2F7.2.0/pmd-dist-7.2.0-bin.zip
unzip pmd-dist-7.2.0-bin.zip
alias pmd="$HOME/pmd-bin-7.2.0/bin/pmd"
pmd check -d /usr/src -R rulesets/java/quickstart.xml -f text
PMD находит неиспользуемые переменные, пустые блоки
catch
, ненужное создание объектов и всё в таком духе. В основном он работает с Java и Apex, но поддерживает 16 других языков. В комплект входит 400+ встроенных правил. PMD легко можно кастомизировать с помощью пользовательских правил. Использует JavaCC и Antlr для разбора исходных файлов на абстрактные синтаксические деревья (AST) и запускает правила на их основе для поиска нарушений. Правила могут быть написаны на языке Java или с помощью запроса XPath.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
dependencies {
implementation("org.bytedeco:javacv-platform:1.5.10")
}
JavaCV использует обертки из JavaCPP Presets широко используемых библиотек в области компьютерного зрения (OpenCV, FFmpeg, libdc1394, FlyCapture, Spinnaker, OpenKinect, librealsense, CL PS3 Eye Driver, videoInput, ARToolKitPlus, flandmark, Leptonica и Tesseract) и предоставляет служебные классы для упрощения их использования в Java.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Scoold — это open-source платформа вопросов и ответов и обмена знаниями.
Scoold может работать где угодно — на Heroku, DigitalOcean, AWS, Azure или у любого VPS-хостинг-провайдера. Scoold легкий, за бэкенд отвечает отдельный сервис под названием Para.
Scoold не требует БД, да и в целом состоит из простых компонентов, потому что вся тяжелая работа возложена на Para.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Позволяет записывать всю историю операций: покупки, продажи, оплата налогов, сборы, и т.д.
Обновляет исторические котировки по данным из различных источников: Yahoo Finance, Finnhub.io, Quandl или AlphaVantage.
При желании можно настроить получение котировок с нужных HTML-страниц или из JSON-документов.
Все данные хранятся в XML для дальнейшей обработки и могут быть экспортированы в CSV или JSON.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM