1. Обзор
В этом уроке мы рассмотрим концепцию кражи работы в Java .
2. Что такое кража работы?
Кража работы была введена в Java с целью уменьшения конкуренции в многопоточных приложениях . Это делается с помощью фреймворка fork/join .
В этом уроке мы рассмотрим концепцию кражи работы в Java .
Кража работы была введена в Java с целью уменьшения конкуренции в многопоточных приложениях . Это делается с помощью фреймворка fork/join .
В этой статье рассказывается о LMAX Disruptor и о том, как он помогает достичь параллелизма программного обеспечения с малой задержкой. Мы также увидим базовое использование библиотеки Disruptor.
Disruptor — это библиотека Java с открытым исходным кодом, написанная LMAX. Это среда параллельного программирования для обработки большого количества транзакций с малой задержкой (и без сложностей параллельного кода). Оптимизация производительности достигается за счет дизайна программного обеспечения, использующего эффективность базового оборудования.
В этом кратком руководстве мы увидим, как настроить параметры ведения журнала в Maven.
По умолчанию Maven регистрирует только журналы информации, предупреждений
и ошибок
. Кроме того, для ошибок он не показывает полную трассировку стека этого журнала. Чтобы увидеть полную трассировку стека, мы можем использовать опцию -e
или --errors
:
$ mvn -e clean compile
// truncated
cannot find symbol
symbol: variable name
location: class Compiled
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
...
Во время наших сборок мы можем использовать различные инструменты, чтобы сообщать о качестве нашего исходного кода. Одним из таких инструментов является SonarQube , выполняющий статический анализ кода.
Иногда мы можем не согласиться с возвращенными результатами. Поэтому мы можем захотеть исключить некоторый код, который был неправильно помечен SonarQube.
В этом коротком уроке мы рассмотрим, как отключить проверки Sonar. Хотя можно изменить набор правил на сервере SonarQube, мы сосредоточимся только на том, как управлять отдельными проверками в исходном коде и конфигурации нашего проекта.
SonarQube — это автономная служба с открытым исходным кодом, которая предоставляет обзор общего состояния нашего исходного кода путем измерения качества кода и охвата кода.
В этом руководстве мы рассмотрим процесс измерения покрытия кода с помощью SonarQube и JaCoCo.
Core Java предоставляет базовый API для асинхронных вычислений — будущее.
CompletableFuture
— одна из новейших его реализаций.
Vavr предоставляет новую функциональную альтернативу Future
API. В этой статье мы обсудим новый API и покажем, как использовать некоторые из его новых функций.
Больше статей о Vavr можно найти здесь .
Интеграционное тестирование играет важную роль в цикле разработки приложений, проверяя сквозное поведение системы.
В этом руководстве мы узнаем, как использовать среду тестирования Spring MVC для написания и запуска интеграционных тестов, которые проверяют контроллеры без явного запуска контейнера сервлетов.
Нам понадобится несколько зависимостей Maven для запуска интеграционных тестов, которые мы будем использовать в этой статье. Прежде всего, нам понадобятся последние тестовые зависимости junit-jupiter-engine , junit-jupiter-api и Spring :
В этом кратком руководстве мы узнаем , как писать в CSV-файл с помощью Java . CSV расшифровывается как значения, разделенные запятыми, и является распространенным форматом для массовой передачи данных между системами.
Чтобы написать наш файл CSV, мы будем использовать классы в пакете java.io.
Мы поговорим о специальных символах и о том, как с ними обращаться. Мы настроим наш выходной файл на открытие в Microsoft Excel и Google Sheets.
После нашего примера с Java мы кратко рассмотрим некоторые доступные сторонние библиотеки для работы с CSV-файлами.
PrintWriter
Сериализация — это преобразование состояния объекта в поток байтов; десериализация делает обратное. Другими словами, сериализация — это преобразование объекта Java в статический поток (последовательность) байтов, который затем можно сохранить в базе данных или передать по сети.
Процесс сериализации не зависит от экземпляра; например, мы можем сериализовать объекты на одной платформе и десериализовать их на другой. Классы, подходящие для сериализации, должны реализовать специальный интерфейс маркера Serializable.
И ObjectInputStream
, и ObjectOutputStream
являются классами высокого уровня, расширяющими java.io.InputStream
и java.io.OutputStream
соответственно. ObjectOutputStream
может записывать примитивные типы и графы объектов в OutputStream
как поток байтов. Затем мы можем прочитать эти потоки, используя ObjectInputStream
.