Статьи Утилиты Telegram YouTube VK Видео RuTube Отзывы

Статьи с тэгом «Java»

Сравнение форматов конфига в Spring Boot

16 февраля 2020

Тэги: Spring Boot, Java, Collections, Spring, XML, json, yaml.

Spring Boot позволяет хранить настройки приложения в файле и получать к ним доступ в декларативном стиле. Этот файл может иметь один из трёх форматов: properties, xml и yaml. Как Spring будет интерпретировать формат файла, определяется его расширением.
Читать полностью...

Вычисление MD5-хэша

13 февраля 2020

Тэги: алгоритмы, Spring, Java.

MD5 хэш (Message Digest 5) - это 128 битный алгоритм вычисления хэша от сообщения произвольной длины. Чаще всего хэш вычисляется от строки (для проверки паролей) и от файла (для контроля его целостности). Однако хранение паролей в виде md5-хэшей в настоящее время считается небезопасным, т.к. md5-хэш довольно сильно подвержен коллизиям.
Читать полностью...

Сохранение данных в формате Excel

9 февраля 2020

Тэги: файлы, Java, Excel, Apache.

Ранее мы рассматривали пример на тему Чтение данных из Excel. А сегодня узнаем, как можно сохранять данные в формате Excel. Для работы нам потребуются всё те же зависимости от Apache POI. Пример проекта на github прилагается.

Читать полностью...

Чтение данных из Excel

30 января 2020

Тэги: maven, Apache, Excel, Java.

Для чтения данных из файла Excel можно использовать библиотеку Apache POI. Эта библиотека позволяет читать как «старый» формат Excel 97-2003 (расширение файла .xls), так и «новый» (.xlsx). В качестве примера вы можете использовать проект на github.

Добавим в наш maven-проект необходимые зависимости.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.1</version>
</dependency>

Теперь напишем класс ExcelReader, состоящий из одного публичного метода read() и нескольких приватных.

Читать полностью...

Spring Boot: преобразование объекта в json

26 января 2020

Тэги: Spring Boot, rest, json, Java.

Spring Boot позволяет легко преобразовывать объекты в json, а также изменять дефолтное поведение сериализации при помощи аннотаций.
Читать полностью...

Как получить все даты в указанном диапазоне

26 января 2020

Тэги: Stream API, Java, Collections.

Предположим, у нас есть дата начала dateTill и дата окончания dateFrom некоторого временного диапазона. И нам нужно получить список, содержащий все даты из этого диапазона. Как это сделать? Есть два варианта.

Вариант для Java 9

Если у вас Java версии 9 или более поздняя, то можно использовать такой лаконичный вариант:

public List<LocalDate> getDatesFromInterval(LocalDate dateFrom, LocalDate dateTill) {
    return dateFrom.datesUntil(dateTill.plusDays(1))
            .collect(Collectors.toList());
}

Метод LocalDate.datesUntil() порождает поток, начинающийся с указанной даты и заканчивающийся датой, переданной в этот метод в качестве параметра. Чтобы конечная дата также попала в выборку, прибавляем к ней ещё один день с помощью метода plusDays(). В конце превращаем этот поток в список, используя метод collect().

Читать полностью...

Вычисление размера директории

25 января 2020

Тэги: алгоритмы, Stream API, файлы, Java.

При работе с файловой системой может потребоваться вычислить размер папки (folder) с лежащими в ней файлами. Как известно, директория - это лишь логический раздел на файловой системе, поэтому её размер равняется сумме размеров всех файлов, находящихся внутри неё. При этом нужно пройтись по всей иерархии файлов и папок, находящихся внутри.
Читать полностью...

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

23 января 2020

Тэги: алгоритмы, Java.

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

var random = new SecureRandom();
var list = Arrays.asList("апельсин", "лимон", "грейпфрут");
var randomElement = list.get(random.nextInt(list.size()));
System.out.println(randomElement);

Сначала создадим генератор случайных значений SecureRandom. Можно также использовать и обычный Random, но первый выдаёт более случайные значения.

Читать полностью...

Чтение вводимых значений с консоли

22 января 2020

Тэги: Java.

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

Введение в многопоточность

25 апреля 2019

Тэги: Java, многопоточность.

Есть два способа создания потоков в Java: унаследоваться от класса Thread или реализовать интерфейс Runnable. В первом случае мы расширяем стандартный класс Thread, переопределяя лишь один метод run(). Во втором случае интерфейс Runnable требует определить единственный метод run(). Для запуска потока требуется создать объект Thread, передав ему в конструктор экземпляр нашего класса.
Читать полностью...

❮ Назад Далее ❯