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

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

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

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

1. Обзор

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

2. Контрольные суммы и общие алгоритмы

По сути, контрольная сумма — это уменьшенное представление двоичного потока данных.

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

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

1. Обзор

В этом кратком руководстве мы обсудим различные способы сравнения двух экземпляров Long . Подчеркнем проблемы, возникающие при использовании оператора сравнения ссылок ( == ).

2. Проблема с использованием сравнения ссылок

Long — это класс-оболочка для примитивного типа long . Поскольку они являются объектами, а не примитивными значениями, нам нужно сравнить содержимое экземпляров Long , используя .equals() вместо оператора сравнения ссылок (==).

В некоторых случаях нам может показаться, что == это нормально, но внешность обманчива. Учтите, что мы можем использовать == с меньшими числами:

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

1. Введение

В этом руководстве мы узнаем о разнице между Date и OffsetDateTime . Мы также узнаем , как преобразовать одно в другое.

2. Разница между датой и OffsetDateTime

OffsetDateTime был представлен в JDK 8 как современная альтернатива java.util.Date .

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

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

1. Обзор

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

2. Цикл с Map.put()

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

Самым простым решением для достижения этого было бы перебрать список ввода и для каждого элемента:

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

1. Обзор

Создание даты в Java было переопределено с появлением Java 8. Кроме того, новый API даты и времени из пакета java.time можно легко использовать по сравнению со старым из пакета java.util . В этом уроке мы увидим, как это имеет огромное значение.

В этом нам помогает класс LocalDate из пакета java.time . LocalDate — это неизменяемый потокобезопасный класс . Более того, LocalDate может содержать только значения даты и не может иметь компонент времени .

Давайте теперь посмотрим все варианты создания одного со значениями.

2. Создайте пользовательскую LocalDate с помощью of()

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

1. Обзор

В этом руководстве мы узнаем о механизме цифровой подписи и о том, как мы можем реализовать его с помощью архитектуры криптографии Java (JCA) . Мы рассмотрим KeyPair, MessageDigest, Cipher, KeyStore, Certificate и Signature JCA API.

Мы начнем с понимания того, что такое цифровая подпись, как сгенерировать пару ключей и как сертифицировать открытый ключ в центре сертификации (ЦС). После этого мы увидим, как реализовать цифровую подпись с помощью низкоуровневых и высокоуровневых API-интерфейсов JCA.

2. Что такое цифровая подпись?

2.1. Определение цифровой подписи

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

1. Обзор

Invoke Dynamic (также известный как Indy) был частью JSR 292 , предназначенного для улучшения поддержки JVM для языков с динамической типизацией. После своего первого выпуска в Java 7 код операции invokedynamic довольно широко используется динамическими языками на основе JVM, такими как JRuby, и даже языками со статической типизацией, такими как Java.

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

2. Познакомьтесь с Invoke Dynamic

Начнем с простой цепочки вызовов Stream API :

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

1. Обзор

Обработка ввода и вывода — обычные задачи для Java-программистов. В этом руководстве мы рассмотрим исходные библиотеки java.io ( IO ) и более новые библиотеки java.nio ( NIO ) , а также их различия при обмене данными по сети.

2. Основные характеристики

Давайте начнем с рассмотрения ключевых особенностей обоих пакетов.

2.1. ИО — java.io

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

1. Обзор

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

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

2. Введение в часовой пояс

По умолчанию JVM считывает информацию о часовом поясе из операционной системы. Эта информация передается классу TimeZone , который хранит часовой пояс и вычисляет летнее время .

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

1. Обзор

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

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

2. Введение в блокировки файлов

В общем, есть два типа замков :