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

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

1. Обзор

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

2. Типы данных

В Java целое число может быть представлено примитивным типом данных int или классом-оболочкой Integer . Примитивный тип данных представляет собой 32-разрядное целое число со знаком, представленное методом кодирования с дополнением до двух . Класс Integer служит оболочкой, которая позволяет выполнять операции с целыми числами без знака, а также обрабатывать целые (примитивные) значения как объекты для работы с Generics .

С другой стороны, логические значения не имеют определенного размера в памяти, но по умолчанию они соответствуют операционной системе и виртуальной машине Java (JVM) . Точно так же, как и у всех примитивных типов данных в Java, у boolean есть класс-оболочка Boolean, который позволяет логическим значениям вести себя как объекты.

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

1. Обзор

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

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

2. Компиляция одного файла исходного кода Java

Java предоставляет простой инструмент — javac для компиляции файлов исходного кода Java. Начнем с компиляции небольшого класса Car.java :

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

1. Обзор

В этом уроке мы узнаем, как сгенерировать случайное значение из перечисления .

2. Случайное значение Enum со статическим методом

Во- первых, мы создадим статическую функцию, которая возвращает случайно сгенерированное значение из определенного набора перечислений . Значения Enum представляют собой набор констант; тем не менее, мы все еще можем объявлять статические методы в теле класса enum . Мы будем использовать статический метод в качестве помощника для генерации случайного значения перечисления .

Мы объявляем метод внутри тела класса перечисления , который является статическим и возвращает значение перечисления . Этот метод вызовет nextInt() из объекта Random , и мы назовем этот метод randomDirection() :

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

1. Обзор

API Java HttpClient был представлен в Java 11. API реализует клиентскую часть самых последних стандартов HTTP . Он поддерживает HTTP/1.1 и HTTP/2, как синхронную, так и асинхронную модели программирования.

Мы можем использовать его для отправки HTTP-запросов и получения их ответов. До Java 11 нам приходилось полагаться на элементарную реализацию URLConnection или сторонние библиотеки, такие как Apache HttpClient .

В этом руководстве мы рассмотрим отправку POST-запросов с помощью Java HttpClient . Мы покажем, как отправлять как синхронные, так и асинхронные запросы POST, а также параллельные запросы POST. Кроме того, мы проверим, как добавлять параметры аутентификации и тела JSON в запросы POST.

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

2. Подготовка POST-запроса

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

1. Обзор

Список — довольно часто используемая структура данных в Java. Иногда нам может понадобиться вложенная структура List для некоторых требований, таких как List<List<T>> .

В этом руководстве мы более подробно рассмотрим эту структуру данных «Список списков» и рассмотрим некоторые повседневные операции.

2. Массив списков против списка списков

Мы можем рассматривать структуру данных «Список списков» как двумерную матрицу. Итак, если мы хотим сгруппировать несколько объектов List<T> , у нас есть два варианта:

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

1. Обзор

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

2. Подход к решению

Для начала давайте возьмем пример и посмотрим, что именно должно произойти. Например, мы хотим, чтобы число 1234 стало 4321. Этого можно добиться с помощью следующего подхода:

  1. получить последнюю цифру числа
  • мы можем применить модуль, чтобы получить последнюю цифру
  • 1-я итерация – 1234 % 10 = 4
  • 2-я итерация – 123 % 10 = 3
  1. умножьте обратное число на 10 и добавьте цифру, найденную на предыдущем шаге
  • 1-я итерация — 0 * 10 + 4 = 4 (поскольку для начала нет перевернутого числа, мы умножаем на 0 в 1-й итерации)
  • 2-я итерация – 4*10+3=43
  1. разделите исходное число на 10 и повторите с шага 1 и продолжайте, пока число не станет 0
  • 1-я итерация — 1234/10 = 123
  • 2-я итерация – 123/10=12

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

1. Весна и Ява

>> Отладка сбоя JVM для LinkedIn — часть 1 [ devblogs.microsoft.com ]

Выявление сбоя JVM — пошаговый анализ журналов JVM HotSpot для выяснения основной причины сбоя.

>> JEP 425: виртуальные потоки для повышения пропускной способности [ infoq.com ]

Представляем новый предварительный просмотр API виртуальных потоков в Java 19 : аналогичный API старых потоков, но с совершенно другими вариантами использования.

>> Реактивная архитектура с Spring Boot [ Reflectoring.io ]

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

1. Обзор

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

2. HTTP-заголовки

Прежде чем погрузиться в реализацию, давайте рассмотрим, что такое заголовки HTTP .

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

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

1. Обзор

По мере роста популярности микросервисной архитектуры гигантские монолитные приложения уходят в прошлое. Java не стоит на месте, а адаптируется к современным потребностям. Например, Oracle, Red Hat, BellSoft и другие участники активно развивают проект GraalVM . Кроме того, год назад был выпущен микросервисный фреймворк Quarkus . Что касается Spring Boot, VMware работает над проектом Spring Native уже два года.

В результате, благодаря сотрудничеству между VMware и BellSoft, Spring Native стал сквозным решением для нативных образов, которое включает в себя Liberica Native Image Kit , инструмент, основанный на исходном коде GraalVM. Spring Native и Liberica NIK позволяют разработчикам создавать собственные исполняемые файлы приложений Spring Boot, которые оптимизируют потребление ресурсов и минимизируют время запуска.

В этом руководстве мы узнаем, как использовать технологию собственных образов с приложениями Spring Boot, создав и запустив одно и то же приложение тремя способами — в виде классического файла JAR; в качестве собственного контейнера изображений с Liberica JDK и Spring Native; и как собственный образ с помощью Liberica Native Image Kit. Затем мы сравним их скорость запуска. В каждом случае мы будем использовать приложение JDBC petclinic из проекта Spring Native в качестве примера.

2. Установка Либерика JDK

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

1. Введение

В этом руководстве мы покажем, как передать решения об авторизации Spring Security в OPA — Open Policy Agent .

2. Преамбула: случай внешней авторизации

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

Однако есть и другие случаи, когда нам нужна большая гибкость. Решения по управлению доступом типичны: по мере усложнения приложения предоставление доступа к определенной функциональности может зависеть не только от того, кто вы, но и от других контекстуальных аспектов запроса. Эти аспекты могут включать, среди прочего, IP-адрес, время суток и метод аутентификации при входе (например, «запомнить меня», OTP).