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

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

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

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

1. Введение

В этом руководстве мы сосредоточимся на том, как сравнивать даты с помощью Java 8 Date/Time API . Мы углубимся в различные методы, чтобы проверить, равны ли две даты, и как сравнивать даты.

2. Сравнение дат

Основным способом выражения даты в Java является LocalDate . Давайте рассмотрим два экземпляра объекта LocalDate , представляющие 10 августа 2019 года и 1 июля 2019 года:

LocalDate firstDate = LocalDate.of(2019, 8, 10);
LocalDate secondDate = LocalDate.of(2019, 7, 1);

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

1. Обзор

В этом кратком руководстве мы рассмотрим два новых класса для работы с датами, появившихся в Java 8: Period и Duration .

Оба класса можно использовать для представления количества времени или определения разницы между двумя датами. Основное различие между этими двумя классами заключается в том, что Period использует значения на основе даты, а Duration использует значения на основе времени.

2. Класс периода

Класс Period использует единицы год, месяц и день для представления периода времени.

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

1. Введение

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

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

Однако в новых версиях Java появились более полезные и выразительные классы, такие как ZoneId и ZoneOffset , для управления часовыми поясами.

В этой статье мы обсудим ZoneId и ZoneOffset , а также связанные с ними классы DateTime .

Мы также можем прочитать о новом наборе классов DateTime , представленных в Java 8, в нашем предыдущем посте .

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

1. Обзор

ZonedDateTime и OffsetDateTime — довольно популярные классы в Java 8 DateTime API . Кроме того, оба сохраняют момент на временной шкале с точностью до наносекунд . И поначалу может возникнуть путаница при выборе между ними.

В этом кратком руководстве мы рассмотрим различия между ZonedDateTime и OffsetDateTime .

2. Зонированная дата и время

ZonedDateTime — это неизменное представление даты и времени с часовым поясом в календарной системе ISO-8601, например 2007-12-03T10:15:30+01:00 Europe/Pari s. Он содержит состояние, эквивалентное трем отдельным объектам: LocalDateTime , ZoneId и разрешенному ZoneOffset .

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

1. Обзор

В этом руководстве вы узнаете, как реорганизовать свой код, чтобы использовать новый API Date Time, представленный в Java 8.

2. Краткий обзор нового API

Раньше работать с датами в Java было сложно. Старая библиотека дат, предоставляемая JDK, включала только три класса: java.util.Date, java.util.Calendar и java.util.Timezone .

Они подходили только для самых основных задач. Для чего-то даже отдаленно сложного разработчикам приходилось либо использовать сторонние библиотеки, либо писать тонны пользовательского кода.

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

1. Обзор

До JUnit 5, чтобы представить классную новую функцию, команда JUnit должна была сделать это с основным API. С JUnit 5 команда решила, что пришло время расширить возможности основного API JUnit за пределы самого JUnit, основная философия JUnit 5 называется « предпочитать точки расширения функциям ».

В этой статье мы сосредоточимся на одном из таких интерфейсов точек расширения — ParameterResolver , который можно использовать для ввода параметров в методы тестирования. Существует несколько различных способов сообщить платформе JUnit о вашем расширении (процесс, известный как «регистрация»), и в этой статье мы сосредоточимся на декларативной регистрации (т. е. регистрации через исходный код).

2. Разрешитель параметров

Внедрение параметров в ваши методы тестирования можно было выполнить с помощью JUnit 4 API, но это было довольно ограничено. С помощью JUnit 5 API Jupiter можно расширить — за счет реализации ParameterResolver — для обслуживания объектов любого типа в ваших методах тестирования. Давайте посмотрим.

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

1. Обзор

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

Мы обсудим несколько способов проверки сходства двух HashMaps . Мы также будем использовать Java 8 Stream API и Guava, чтобы получить подробные различия между различными HashMaps .

2. Использование Map.equals()

Во- первых, мы будем использовать Map.equals() , чтобы проверить, имеют ли два HashMap одинаковые записи:

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

1. Обзор

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

Мы также рассмотрим некоторые внешние библиотеки, которые могут помочь нам в конкретных случаях.

2. Мелкие и глубокие копии

Во-первых, давайте разберемся с концепцией мелких и глубоких копий в HashMaps .

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

1. Обзор

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

Прежде чем мы начнем, давайте кратко вспомним, как объекты сравниваются в Java.

Обычно объекты могут выражать естественный порядок путем реализации метода compareTo() из интерфейса Comparable . Однако порядок, отличный от естественного, может использоваться через объект Comparator . Мы увидим их более подробно по ходу дела.

2. До Java 8

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

1. Обзор

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

Прежде чем мы приступим к реализации, важно отметить, что основные интерфейсы коллекций List и Set расширяют Collection , а Map — нет.

Проще говоря, HashMap хранит значения по ключу и предоставляет API для добавления, извлечения и обработки сохраненных данных различными способами. Реализация основана на принципах хеш-таблицы , которые на первый взгляд кажутся сложными, но на самом деле их очень легко понять.

Пары ключ-значение хранятся в так называемых корзинах, которые вместе составляют то, что называется таблицей, которая на самом деле является внутренним массивом.

Как только мы узнаем ключ, под которым хранится или должен храниться объект, операции хранения и извлечения выполняются за постоянное время , O(1) в хеш-карте с хорошими размерами.