Статьи
YouTube-канал Отзывы

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

Spring Initializr: создаём maven-проект на Java

2 августа 2021

Тэги: Java, Java 11, YouTube, Apache, Spring, Spring Boot, новости, maven.

Чтобы каждый раз не создавать с нуля Spring проект на Java и не искать последние версии зависимостей, можно воспользоваться сервисом Spring Initializr, который предоставляет интерфейс для генерации заготовки проекта с добавлением стандартных зависимостей. Их можно конфигурировать в зависимости от ваших потребностей. В качестве сборщика проекта выберем Maven, и Spring Initializr автоматически сгенерирует скрипт сборки. Затем мы скачаем эту заготовку и запустим её в IntelliJ Idea от JetBrains.

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

Кстати, подписывайтесь на канал, т.к. это по сути одно из первых моих видео.

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

Пузырьковая сортировка

4 апреля 2021

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

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

Суть алгоритма заключается в том, что мы последовательно проходимся по массиву элементов, сравнивая текущий и предыдущий между собой. Если предыдущий больше текущего, то меняем их местами. Таким образом, элемент с наибольшим значением как бы «всплывает» в конец массива. Отсюда и название «пузырьковая сортировка».

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

Подсчёт количества строк в текстовом файле

23 марта 2021

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

Во многих редакторах при работе с текстовым документом вы можете видеть, сколько всего строк содержится в этом файле. Строки между собой разделяются символом перевода строки, который в каждой операционной системе (Windows, Unix, Mac) свой.

Давайте разберёмся, как быстро подсчитать количество строк в текстовом файле независимо от той ОС, в котором выполняется наш код. Более того, текстовый файл может быть сколь угодно большим, поэтому мы будем использовать буферизацию потока, чтобы не израсходовать всю доступную оперативную память.

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

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

Вычисление контрольной суммы файла

21 марта 2021

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

Контрольная сумма от набора байт позволяет убедиться в том, что данные на клиенте, полученные от сервера, являются корректными. Для этого вместе с файлом сервер может предоставлять контрольную сумму для проверки на клиентской стороне. Существует несколько алгоритмов вычисления контрольной суммы, рассмотрим самые популярные: md5, sha-256, sha-512 и crc-32.

Вычисление md5 с помощью MessageDigest

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

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

Чтение ресурсных файлов

1 марта 2020

Тэги: Kotlin, gradle, maven, Java 11, файлы.

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

Например, нам нужно прочитать файл test.txt. Положим его в папку resources вашего проекта (она есть и в maven, и в gradle). Важно положить именно в ту resources, которая относится к самому приложению, а не к тестам, иначе вы не сможете обратиться к файлу.

public class ResourceReader {

    public static void main(String[] args) throws Exception {
        var example = new ResourceReader();
        var content = example.readTextResource("test.txt");
        System.out.println(content);
    }

    public String readTextResource(String filename) throws Exception {
        var uri = getClass().getResource(String.format("/%s", filename)).toURI();
        return Files.readString(Paths.get(uri));
    }
}

Доступ к ресурсам мы получаем через метод getResource(), который имеется у объекта Class. Но доступ к классу из статичного контекста метода main() получить нельзя, поэтому мы сначала создаём экземпляр класса, а затем внутри него уже обращаемся к ресурсу. Обратите внимание, что имя ресурса начинается со слеша. Путь до ресурса указывается от корня папки resources. Для чтения содержимого файла целиком в строку используем метод Files.readString(), появившийся в Java 11. Если у вас более ранняя версия Java, то данный метод будет недоступен. В случае, если файл будет очень большим, также лучше данный метод не использовать, а читать файл с помощью буферизованного потока.

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