Очередной #дайджест по Java:
☕ Автоматизация разработки с помощью подхода DB-first
Интеграция с БД — привычно сложная и хрупкая часть большинства кодобаз, постоянно отвлекающая внимание разработчиков и раздувающая сроки.
☕ Java: что нужно знать новичку?
Необходимые знания одного из самых популярных языков.
☕ Какую IDE для Java выбрать?
Какую IDE выбрать для начинающего Java-разработчика?
☕ Особенности разработки автотестов различными инструментами, а также статистика по использованию
Однозначным плюсом внедрения автотестов на проекте является сокращение времени на тестирование и сокращение возможности ошибки при тестировании человеком.
☕ Автоматизация разработки с помощью подхода DB-first
Интеграция с БД — привычно сложная и хрупкая часть большинства кодобаз, постоянно отвлекающая внимание разработчиков и раздувающая сроки.
☕ Java: что нужно знать новичку?
Необходимые знания одного из самых популярных языков.
☕ Какую IDE для Java выбрать?
Какую IDE выбрать для начинающего Java-разработчика?
☕ Особенности разработки автотестов различными инструментами, а также статистика по использованию
Однозначным плюсом внедрения автотестов на проекте является сокращение времени на тестирование и сокращение возможности ошибки при тестировании человеком.
Как часто вы обращаетесь к документации?
#интерактив
#интерактив
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Trie
Trie (дерево префиксов) — это структура данных в виде дерева, используемая для хранения ассоциативных данных, например словарей.
Она позволяет эффективно хранить и находить слова по их префиксам.
Trie состоит из узлов, каждый из которых может ссылаться на несколько дочерних узлов. Каждая ветвь от корня до листа представляет одно слово, а символы слова образуют путь от корня до узла-листа.
Узлы, которые являются концом слова, помечаются специальным флагом.
Поиск слова заключается в прохождении от корня по ветвям символов этого слова. Добавление нового слова — добавление отсутствующих узлов для его символов.
Trie оптимальна для хранения словарей и поиска по префиксам благодаря эффективности этих операций.
В Java для реализации Trie удобно использовать HashMap в узлах для связей с дочерними узлами.
#код
Trie (дерево префиксов) — это структура данных в виде дерева, используемая для хранения ассоциативных данных, например словарей.
Она позволяет эффективно хранить и находить слова по их префиксам.
Trie состоит из узлов, каждый из которых может ссылаться на несколько дочерних узлов. Каждая ветвь от корня до листа представляет одно слово, а символы слова образуют путь от корня до узла-листа.
Узлы, которые являются концом слова, помечаются специальным флагом.
Поиск слова заключается в прохождении от корня по ветвям символов этого слова. Добавление нового слова — добавление отсутствующих узлов для его символов.
Trie оптимальна для хранения словарей и поиска по префиксам благодаря эффективности этих операций.
В Java для реализации Trie удобно использовать HashMap в узлах для связей с дочерними узлами.
#код
Может ли один блок catch отлавливать несколько исключений (с одной и разных веток наследований)?
Да, в Java один блок catch может обрабатывать сразу несколько типов исключений.
Это работает следующим образом:
— При определении блока catch в круглых скобках перечисляются классы исключений через вертикальную черту "|" . Это могут быть классы исключений как с одной ветки наследования, так и с разных.
— Когда во время выполнения программы возникает исключение, Java проверяет, подходит ли оно под один из указанных в catch типов. Если подходит — выполняется код внутри данного блока catch.
Это позволяет избежать дублирования кода обработки в случаях, когда разные исключения должны обрабатываться одинаково.
#вопросы_с_собеседований
Да, в Java один блок catch может обрабатывать сразу несколько типов исключений.
Это работает следующим образом:
— При определении блока catch в круглых скобках перечисляются классы исключений через вертикальную черту "|" . Это могут быть классы исключений как с одной ветки наследования, так и с разных.
— Когда во время выполнения программы возникает исключение, Java проверяет, подходит ли оно под один из указанных в catch типов. Если подходит — выполняется код внутри данного блока catch.
Это позволяет избежать дублирования кода обработки в случаях, когда разные исключения должны обрабатываться одинаково.
#вопросы_с_собеседований
DoubleAdder
DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.
DoubleAdder оптимизирован для многопоточных приложений, когда нужно подсчитать сумму или другое агрегатное значение из большого числа потоков.
Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
#код
DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.
DoubleAdder оптимизирован для многопоточных приложений, когда нужно подсчитать сумму или другое агрегатное значение из большого числа потоков.
Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
#код
Пишем простую интеграцию с GitHub используя feign и jsonschema2pojo maven plugin
В эпоху микросервисов приходится все чаще и чаще писать интеграции для их взаимодействия как между собой, так и со сторонними системами. Кто-то создаёт отдельные библиотеки с интеграцией и переиспользует их в нескольких микросервисах, кто-то захламляет проект огромным количеством POJO классов, некоторые же создают один POJO класс с множеством вложенных классов. В этой статье автор делится подходом, используя который вы сможете спрятать большую часть кода, которая мешает чтению и пониманию проекта.
Читать статью
В эпоху микросервисов приходится все чаще и чаще писать интеграции для их взаимодействия как между собой, так и со сторонними системами. Кто-то создаёт отдельные библиотеки с интеграцией и переиспользует их в нескольких микросервисах, кто-то захламляет проект огромным количеством POJO классов, некоторые же создают один POJO класс с множеством вложенных классов. В этой статье автор делится подходом, используя который вы сможете спрятать большую часть кода, которая мешает чтению и пониманию проекта.
Читать статью
Пробовали ли программировать на планшете?
#интерактив
#интерактив
IdentityHashMap
Класс IdentityHashMap в Java является реализацией интерфейса Map и работает на основе проверки на равенство ссылок объектов, а не на основе метода equals.
Это означает, что если два объекта, хранящихся в IdentityHashMap, содержат одинаковые значения полей, но разные ссылки, то они будут считаться разными ключами.
IdentityHashMap может быть полезной альтернативой для HashMap в тех случаях, когда ключом является объект, и необходимо учесть различие между ссылками на объект.
#код
Класс IdentityHashMap в Java является реализацией интерфейса Map и работает на основе проверки на равенство ссылок объектов, а не на основе метода equals.
Это означает, что если два объекта, хранящихся в IdentityHashMap, содержат одинаковые значения полей, но разные ссылки, то они будут считаться разными ключами.
IdentityHashMap может быть полезной альтернативой для HashMap в тех случаях, когда ключом является объект, и необходимо учесть различие между ссылками на объект.
#код
Очередной #дайджест по Java:
☕ Создание и тестирование gRPC сервиса (Spring Boot приложение)
Как создать и протестировать gRPC-сервис в приложении на Spring Boot.
☕ Я хотел сломать Java и я это сделал
Автор привнесальтернативную математику в Java.
☕ Борьба с временем ответа сервиса
История о том, как время ответа сервиса выросло в несколько раз в течение месяца, в чем была причина, и какое в итоге нашли решение.
☕ Используем Elasticsearch вместе со Spring Boot
Как можно интегрировать Elasticsearch в Spring Boot приложение.
☕ Создание и тестирование gRPC сервиса (Spring Boot приложение)
Как создать и протестировать gRPC-сервис в приложении на Spring Boot.
☕ Я хотел сломать Java и я это сделал
Автор привнес
☕ Борьба с временем ответа сервиса
История о том, как время ответа сервиса выросло в несколько раз в течение месяца, в чем была причина, и какое в итоге нашли решение.
☕ Используем Elasticsearch вместе со Spring Boot
Как можно интегрировать Elasticsearch в Spring Boot приложение.
Динамический массив
В Java динамический массив представляет собой структуру данных, которая позволяет хранить и управлять коллекцией элементов переменного размера.
Он реализуется с помощью класса ArrayList. ArrayList представляет собой реализацию списка, который может изменять свой размер по мере необходимости.
#код
В Java динамический массив представляет собой структуру данных, которая позволяет хранить и управлять коллекцией элементов переменного размера.
Он реализуется с помощью класса ArrayList. ArrayList представляет собой реализацию списка, который может изменять свой размер по мере необходимости.
#код
🐧📖 ТОП-10 книг по Linux в 2023 году
Популярные книги по изучению Linux на русском языке, опубликованные за последние несколько лет.
Читать статью
Популярные книги по изучению Linux на русском языке, опубликованные за последние несколько лет.
Читать статью
Узнаем версию Java
В Java можно узнать версию текущего экземпляра JVM (Java Virtual Machine) с помощью функции System.getProperty("java.version");
Этот код вернет текущую версию Java, установленную на компьютере.
#код
В Java можно узнать версию текущего экземпляра JVM (Java Virtual Machine) с помощью функции System.getProperty("java.version");
Этот код вернет текущую версию Java, установленную на компьютере.
#код