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

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

1. Обзор

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

В этом кратком руководстве мы сравним два популярных фреймворка Java Security — Apache Shiro и Spring Security .

2. Немного предыстории

Apache Shiro родился в 2004 году как JSecurity и был принят Apache Foundation в 2008 году. На сегодняшний день он видел много выпусков, последним на момент написания этого является 1.5.3.

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

1. Обзор

Spring Boot использует самоуверенный алгоритм для сканирования и настройки DataSource . Это позволяет нам легко получить полностью настроенную реализацию DataSource по умолчанию.

Кроме того, Spring Boot автоматически настраивает молниеносный пул соединений , либо HikariCP , Apache Tomcat , либо Commons DBCP , именно в таком порядке, в зависимости от того, какие из них находятся в пути к классам.

Хотя автоматическая настройка DataSource Spring Boot в большинстве случаев работает очень хорошо, иногда нам потребуется более высокий уровень контроля , поэтому нам придется настроить собственную реализацию DataSource , поэтому процесс автоматической настройки пропускается.

В этом руководстве мы узнаем , как программно настроить DataSource в Spring Boot .

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

1. Введение

В этом кратком руководстве мы рассмотрим новую аннотацию @Serial, представленную в Java 14.

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

Хотя аннотация уже доступна для сборки 25, проверка lint еще не выпущена.

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

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

1. Обзор

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

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

2. Приложение

Начнем с написания заявки. Мы запустим его в удаленном месте и отладим локально в этой статье:

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

1. Обзор

Что касается коллекций , стандартная библиотека Java предоставляет множество вариантов на выбор. Среди этих вариантов есть две известные реализации List , известные как ArrayList и LinkedList, каждая со своими свойствами и вариантами использования.

В этом уроке мы увидим, как эти два элемента реализованы на самом деле. Затем мы оценим различные приложения для каждого из них.

2. Список массивов

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

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

1. Обзор

Служба аутентификации и авторизации Java (JAAS) — это низкоуровневая структура безопасности Java SE, которая расширяет модель безопасности от безопасности на основе кода до безопасности на основе пользователей . Мы можем использовать JAAS для двух целей:

  • Аутентификация: идентификация объекта, который в данный момент выполняет код.
  • Авторизация: после аутентификации убедитесь, что этот объект имеет необходимые права управления доступом или разрешения для выполнения конфиденциального кода.

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

2. Как работает JAAS

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

1. Обзор

Есть много способов проверить, содержит ли строка подстроку . В этой статье мы будем искать подстроки в String , сосредоточив внимание на нечувствительных к регистру обходных решениях для String.contains() в Java. Самое главное, мы предоставим примеры того, как решить эту проблему.

2. Самое простое решение: String.toLowerCase

Самое простое решение — использовать String.toLowerCase() . В этом случае мы преобразуем обе строки в нижний регистр, а затем используем метод contains() :

assertTrue(src.toLowerCase().contains(dest.toLowerCase()));

· 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 , с другой стороны, не является потокобезопасным и хранит время с точностью до миллисекунды.