Найти в Дзене
Поддержите автораПеревод на любую сумму
Автора можно поддержать разовым переводом
Подключите ПремиумЭксклюзивные публикации
Работа с отображениями (Map) в Kotlin
В этом руководстве мы рассмотрим коллекцию Map в Kotlin. Начнём с определения и характеристик отображений. Затем мы изучим, как создавать отображения в Kotlin. Остальная часть статьи будет посвящена распространённым операциям: чтению, изменению и преобразованию данных. Отображения (Maps) — это распространённая структура данных в информатике. В других языках они известны как словари (dictionaries) или ассоциативные массивы (associative arrays). Отображения позволяют хранить коллекцию из нуля или более пар «ключ–значение»...
3 часа назад
Бинарный семафор против повторно входной блокировки (Reentrant Lock)
В этом руководстве мы рассмотрим бинарные семафоры и повторно входные блокировки (Reentrant Locks). Также мы сравним их между собой, чтобы понять, какая из них лучше подходит для различных ситуаций. Бинарный семафор обеспечивает механизм сигнализации для управления доступом к единственному ресурсу. Иными словами, бинарный семафор реализует взаимное исключение, позволяя только одному потоку одновременно входить в критическую секцию. Для этого он хранит только один доступный "разрешающий" токен. Следовательно,...
4 дня назад
Java: Разделитель каталогов и разделитель путей
Разные операционные системы используют разные символы в качестве разделителей файлов и путей. Когда наше приложение должно работать на нескольких платформах, необходимо правильно обрабатывать эти различия. Java помогает выбрать подходящий разделитель и предоставляет функции для создания путей, корректно работающих на целевой операционной системе. В этом кратком руководстве мы рассмотрим, как писать код с использованием правильных разделителей файлов и путей. Разделитель файлов — это символ, используемый для разделения имён каталогов, составляющих путь к определённому месту...
5 дней назад
Разница между JSF, Servlet и JSP
При разработке любого приложения выбор правильной технологии играет важную роль. Однако принять решение бывает не так просто. В этой статье мы сравним три популярных технологии Java. Прежде чем перейти к сравнению, мы рассмотрим назначение каждой технологии и её жизненный цикл. Затем выделим основные особенности и сравним их по нескольким критериям. Jakarta Server Faces, ранее известный как JavaServer Faces, — это веб-фреймворк для создания компонентно-ориентированных пользовательских интерфейсов в Java-приложениях...
6 дней назад
Работа с Map в Kotlin
В этом уроке мы рассмотрим тип коллекции Map в Kotlin. Мы начнем с определения карты и её характеристик. Затем мы рассмотрим, как создавать карты в Kotlin. Остальная часть статьи будет посвящена основным операциям, таким как чтение элементов, изменение записей и преобразования данных. Карты — это распространенная структура данных в компьютерных науках. Они также известны как словари или ассоциативные массивы в других языках программирования. Карты могут хранить коллекцию из нуля или более пар "ключ-значение"...
1 неделю назад
Геттеры и сеттеры в Kotlin
В этом уроке мы рассмотрим свойства в Kotlin и как с ними работать. Свойства похожи на поля в Java, но есть несколько важных отличий. Например, свойства автоматически генерируют геттеры и сеттеры. Также они могут быть объявлены на уровне пакета — им не обязательно принадлежать классу. В Kotlin свойство не требует явных методов геттера или сеттера: var author: String = "Frank Herbert" Это то же самое, что и определение следующих методов get() и set(): var author: String = "Frank Herbert" get()...
1 неделю назад
Введение в многоплатформенную разработку на Kotlin
В этом уроке мы разберём многоплатформенную разработку в Kotlin. Мы разработаем простое приложение, которое будет работать на нескольких платформах, таких как JVM, JS и Native. Это также поможет нам понять преимущества многоплатформенной разработки и различные случаи использования, где мы можем эффективно применять её. Очень часто мы пишем части программы, которые не зависят от платформы, на которой они выполняются. Например, мы вызываем REST API для получения данных и выполняем дополнительную обработку перед возвратом результата...
1 неделю назад
Ленивая инициализация в Kotlin
В этой статье мы рассмотрим одну из самых интересных особенностей синтаксиса Kotlin — ленивую инициализацию. Мы также обратим внимание на ключевое слово lateinit, которое позволяет нам обойти компилятор и инициализировать ненулевые поля в теле класса, а не в конструкторе. Иногда нам нужно создавать объекты, инициализация которых требует значительных ресурсов. Кроме того, часто мы не можем быть уверены, что объект, для которого была произведена инициализация в начале программы, будет использоваться вообще...
1 неделю назад
Как получить случайное число в Kotlin
Этот короткий урок продемонстрирует, как генерировать случайное число с использованием Kotlin. Самый простой способ сгенерировать случайное число в Kotlin — это использовать java.lang.Math. Пример ниже генерирует случайное число типа double между 0 и 1. @Test fun whenRandomNumberWithJavaUtilMath_thenResultIsBetween0And1() { val randomNumber = Math.random() assertTrue { randomNumber >= 0 } assertTrue { randomNumber < 1 } } Мы также можем использовать java.util.concurrent.ThreadLocalRandom для генерации случайных чисел типа double, int или long...
2 недели назад
Разница между JSF, Servlet и JSP
При разработке любого приложения выбор подходящей технологии играет значительную роль. Однако решение не всегда очевидно. В этой статье мы представим сравнительный обзор трёх популярных технологий Java. Прежде чем перейти к сравнению, начнём с изучения назначения каждой технологии и её жизненного цикла. Затем мы рассмотрим их основные особенности и сравним их на основе нескольких факторов. Jakarta Server Faces, ранее известный как JavaServer Faces, — это веб-фреймворк для создания интерфейсов пользователя на основе компонентов для Java-приложений...
2 недели назад
Новые функции в Java 12
В этом руководстве мы быстро и на высоком уровне рассмотрим некоторые новые функции, которые появились в Java 12. Полный список всех новых возможностей доступен в официальной документации. Java 12 представляет много новых языковых функций. В этом разделе мы обсудим несколько самых интересных с примерами кода для лучшего понимания. Java 12 добавляет два новых метода в класс String. Первый метод — indent — регулирует отступы каждой строки в зависимости от целочисленного параметра. Если параметр больше нуля, в начале каждой строки будут добавлены новые пробелы...
2 недели назад
Моделирование данных с Apache Kafka
В этом руководстве мы углубимся в моделирование данных для событийно-ориентированной архитектуры с использованием Apache Kafka. Кластер Kafka состоит из нескольких брокеров Kafka, зарегистрированных в кластере Zookeeper. Чтобы упростить задачу, мы будем использовать готовые образы Docker и конфигурации docker-compose, опубликованные компанией Confluent. Сначала загрузим файл docker-compose.yml для кластера Kafka из трёх узлов: $ BASE_URL="https://raw.githubusercontent.com/confluentinc/cp-docker-images/5...
2 недели назад