Перейти к основному содержимому

1310 записей с тегом "Java"

Посмотреть все теги

· 11 мин. чтения

1. Введение

Шаблоны проектирования — это общие шаблоны, которые мы используем при написании нашего программного обеспечения . Они представляют собой устоявшиеся лучшие практики, разработанные с течением времени. Затем они могут помочь нам убедиться, что наш код хорошо спроектирован и хорошо построен.

Creational Patterns — это шаблоны проектирования, которые сосредоточены на том, как мы получаем экземпляры объектов . Обычно это означает, как мы создаем новые экземпляры класса, но в некоторых случаях это означает получение уже созданного экземпляра, готового для использования.

В этой статье мы собираемся вернуться к некоторым распространенным шаблонам креативного дизайна. Мы увидим, как они выглядят и где их найти в JVM или других основных библиотеках.

2. Заводской метод

· 13 мин. чтения

1. Обзор

Domain-Driven Design (DDD) — это набор принципов и инструментов, которые помогают нам разрабатывать эффективную архитектуру программного обеспечения для повышения ценности бизнеса . Ограниченный контекст — один из центральных и важных шаблонов для спасения архитектуры от большого кома грязи путем разделения всего домена приложения на несколько семантически согласованных частей.

В то же время с помощью системы модулей Java 9 мы можем создавать сильно инкапсулированные модули.

В этом руководстве мы создадим простое приложение магазина и увидим, как использовать модули Java 9, определяя явные границы для ограниченных контекстов.

2. Контексты, ограниченные DDD

· 5 мин. чтения

1. Введение

В этой статье мы обсудим новые выпуски Java с временной привязкой и их влияние на всех типов разработчиков.

Изменения в расписании выпуска включают обновление функций и уровней поддержки для версий Java. В целом эти изменения заметно отличаются от Java, поддерживаемой Oracle с 2010 года.

2. Почему шестимесячные релизы?

Для тех из нас, кто привык к исторически медленной частоте выпуска Java, это довольно значительное отклонение. Почему такое резкое изменение?

· 14 мин. чтения

1. Введение

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

2. Что такое транзакция?

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

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

· 6 мин. чтения

1. Обзор

JVM управляет памятью для нас. Это снимает с разработчиков бремя управления памятью, поэтому нам не нужно вручную манипулировать указателями объектов , что, как доказано, занимает много времени и чревато ошибками.

Под капотом JVM включает в себя множество изящных приемов для оптимизации процесса управления памятью. Одним из приемов является использование сжатых указателей , которые мы собираемся оценить в этой статье. Во-первых, давайте посмотрим, как JVM представляет объекты во время выполнения.

2. Представление объекта во время выполнения

HotSpot JVM использует структуру данных, называемую oops или Ordinary Object Pointers , для представления объектов. Эти oop эквивалентны родным указателям C. instanceOop — это особый вид oop , который представляет экземпляры объектов в Java . Кроме того, JVM также поддерживает несколько других операций , которые хранятся в дереве исходного кода OpenJDK .

· 3 мин. чтения

1. Введение

В Java 11 появился сборщик мусора No-Op под названием Epsilon, который обещает наименьшие возможные накладные расходы на сборку мусора .

В этом кратком руководстве мы рассмотрим, как работает Epsilon, и упомянем распространенные варианты использования.

2. Быстрый практический опыт

Давайте начнем с того, что запачкаем руки и попробуем Epsilon GC!

· 10 мин. чтения

1. Обзор

Проще говоря, MBassadorэто высокопроизводительная шина событий, использующая семантику публикации-подписки .

Сообщения передаются одному или нескольким одноранговым узлам без предварительного знания о количестве подписчиков или о том, как они используют сообщение.

2. Зависимость от Maven

· 8 мин. чтения

1. Обзор

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

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

В этой статье мы рассмотрим элементы для создания задания с помощью Quartz API. Для ознакомления с Spring мы рекомендуем Scheduling in Spring with Quartz .

2. Зависимости Maven

· 3 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим множество способов преобразования String в BigDecimal в Java.

2. Большой десятичный

BigDecimal представляет неизменяемое десятичное число произвольной точности со знаком . Он состоит из двух частей:

  • Немасштабированное значение - произвольное целое число точности
  • Масштаб - 32-битное целое число, представляющее количество цифр справа от десятичной точки.

· 6 мин. чтения

1. Обзор

В этом руководстве мы кратко рассмотрим некоторые из наиболее интересных новых функций Java 8.

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

Мы уже рассмотрели некоторые возможности версии Java 8 — потоковый API , лямбда-выражения и функциональные интерфейсы — поскольку это обширные темы, заслуживающие отдельного рассмотрения.

2. Интерфейс по умолчанию и статические методы