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

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

1. Обзор

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

Проще говоря, шаблон легковеса основан на фабрике, которая перерабатывает созданные объекты, сохраняя их после создания. Каждый раз, когда запрашивается объект, фабрика ищет объект, чтобы проверить, не был ли он уже создан. Если да, то возвращается существующий объект, в противном случае создается, сохраняется и затем возвращается новый.

Состояние легковесного объекта состоит из инвариантного компонента, который используется совместно с другими подобными объектами ( internal ) и вариантного компонента, которым может манипулировать клиентский код ( extrinsic ).

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

2. Реализация

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

1. Обзор

В этой статье мы поговорим о программном создании и настройке экземпляра Jetty.

Jetty — это HTTP-сервер и контейнер сервлетов, разработанный как легкий и легко встраиваемый. Мы рассмотрим, как установить и настроить один или несколько экземпляров сервера.

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

Для начала мы хотим добавить Jetty 9 со следующими зависимостями Maven в наш pom.xml :

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

1. Введение

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

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

2. Что такое конвейеры инструкций?

Когда мы пишем любую компьютерную программу, мы пишем набор команд, которые, как мы ожидаем, компьютер будет последовательно выполнять.

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

1. Обзор

В этой статье мы рассмотрим ключевой аспект языка Java — многократное выполнение оператора или группы операторов — с использованием циклов.

2. Введение в циклы

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

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

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

1. Введение

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

Мы покажем, как это сделать до и после Java 8, поскольку после выпуска нового API времени в Java 8 все стало немного иначе.

2. До Java 8

До Java 8 не было прямого способа получить Date без времени, если только мы не использовали сторонние библиотеки, такие как Joda-time.

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

1. Введение

В устаревших системах нам может понадобиться работать с датами, когда нет ни нового API даты и времени, ни настоятельно рекомендуемой библиотеки Joda-Time .

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

2. Системное время

Когда все, что нам нужно, — это одно числовое значение, представляющее текущую дату и время, мы можем использовать системное время. Чтобы получить количество миллисекунд, прошедших с 00:00:00 по Гринвичу 1 января 1970 года, мы можем использовать метод currentTimeMillis , который возвращает тип long :

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

1. Обзор

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

Мы рассмотрим, как извлечь эти значения с помощью устаревшего класса java.util.Date , а также с помощью новой библиотеки даты и времени Java 8.

В Java 8 была введена совершенно новая библиотека даты и времени по ряду веских причин . Помимо других преимуществ, новая библиотека предоставляет улучшенный API для таких операций, как извлечение Year , Month , Day и т. д. из заданной Date .

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

2. Использование Java 7

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

1. Введение

Joda-Time — это наиболее широко используемая библиотека обработки даты и времени до выпуска Java 8. Ее цель состояла в том, чтобы предложить интуитивно понятный API для обработки даты и времени, а также решить проблемы проектирования, существовавшие в Java Date/Time API.

Основные концепции, реализованные в этой библиотеке, были представлены в ядре JDK с выпуском версии Java 8. Новый API даты и времени находится в пакете java.time ( JSR-310 ). Обзор этих возможностей можно найти в этой статье .

После выпуска Java 8 авторы считают проект в основном законченным и советуют по возможности использовать Java 8 API.

2. Зачем использовать Joda-Time?

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

1. Введение

В нашем руководстве по безопасности методов Spring мы увидели, как мы можем использовать аннотации @PreAuthorize и @PostAuthorize .

В этом руководстве мы увидим, как запретить доступ к методам, в которых отсутствуют аннотации авторизации .

2. Безопасность по умолчанию

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

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

1. Проблема и варианты

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

Когда это происходит, есть несколько вариантов:

  • укусите пулю и установите полноценное решение для управления репозиторием , такое как Nexus
  • попытайтесь загрузить артефакт в один из более авторитетных публичных репозиториев
  • установить артефакт локально с помощью плагина maven

Nexus , конечно, более зрелое решение, но и более сложное . Предоставление экземпляра для запуска Nexus, настройка самого Nexus, его настройка и обслуживание могут быть излишними для такой простой проблемы, как использование одного jar-файла. Однако, если этот сценарий — размещение пользовательских артефактов — является распространенным, менеджер репозитория имеет большой смысл.

Загрузка артефакта в общедоступный репозиторий или непосредственно в Maven Central также является хорошим решением, но обычно длительным . Кроме того, библиотека может вообще не поддерживать Maven, что значительно усложняет процесс, поэтому использование артефакта СЕЙЧАС не является реалистичным решением.