Найти в Дзене
Под "капотом" HashSet
HashSet в Java представляет собой коллекцию, которая не допускает дублирования элементов и не гарантирует порядок хранения элементов. Внутри HashSet используется HashMap, где ключи - это элементы коллекции, а значения - это заглушки (dummy values), которые используются для эффективного хранения элементов. Когда элемент добавляется в HashSet, он сначала проверяется на наличие в HashMap. Если элемент уже присутствует в HashMap, то он не добавляется в HashSet. Если элемент отсутствует в HashMap, то он добавляется в HashMap как ключ с заглушкой в качестве значения, а затем ключ добавляется в HashSet...
182 читали · 2 года назад
Алгоритмы сортировки на Java (пузырьковая)
Пузырьковая сортировка - это один из простейших алгоритмов сортировки, который применяется в Java. Он основан на сравнении элементов массива попарно и обмене их местами, если они находятся в неправильном порядке. Вот как выглядит код пузырьковой сортировки на Java: ```java public static void bubbleSort(int[] arr) {    int n = arr.length;    for (int i = 0; i < n-1; i++) {        for (int j = 0; j < n-i-1; j++) {            if (arr[j] > arr[j+1]) {                // меняем местами элементы                int...
2 года назад
Асинхронный контроллер на Spring Boot
Асинхронный контроллер в Spring Java позволяет обрабатывать запросы клиентов асинхронно, то есть без блокирования потока, что улучшает производительность и отзывчивость приложения. Вместо того, чтобы ждать завершения выполнения длительной операции, при использовании асинхронного контроллера приложение может продолжать обрабатывать другие запросы, пока операция выполняется в фоновом режиме. Это особенно полезно для приложений с большим количеством клиентов и/или длительными операциями. Преимущества: 1...
273 читали · 2 года назад
Отличие протоколов SSL от TLS
SSL (Secure Sockets Layer) и TLS (Transport Layer Security) - это протоколы безопасности, которые используются для защиты передачи данных в Интернете. SSL был первым протоколом, который был разработан для защиты передачи данных в Интернете, но в настоящее время он устарел и не рекомендуется к использованию. Вместо этого рекомендуется использовать TLS. Основное отличие между SSL и TLS заключается в их структуре и способе работы. SSL использует сложную структуру, которая состоит из трех слоев: SSL-запрос, SSL-сессия и SSL-соединение...
2 года назад
DRY, KISS, SOLID
Принцип SOLID – это набор принципов объектно-ориентированного программирования, разработанных Робертом Мартином (Uncle Bob). Каждая буква в слове SOLID представляет собой отдельный принцип: - Single Responsibility Principle (Принцип единственной ответственности) – каждый класс должен иметь только одну ответственность. - Open/Closed Principle (Принцип открытости/закрытости) – классы должны быть открыты для расширения, но закрыты для изменения. - Liskov Substitution Principle (Принцип подстановки Барбары Лисков) – объекты базового класса могут быть заменены на объекты его производных классов без изменения корректности программы...
2 года назад
JVM, JRE, JDK
Три кита на которых основана не только работа Java, но и с которых начинается практически любое собеседование на Junior Java Developer. JVM (Java Virtual Machine) - это виртуальная машина, которая выполняет Java-код. Она является частью платформы Java и обеспечивает переносимость программ между различными операционными системами. JVM интерпретирует байт-код, который генерируется компилятором Java, и выполняет его на реальном процессоре. Она также управляет памятью и сборкой мусора, обеспечивает безопасность исполнения кода и поддерживает многопоточность...
2 года назад
40 команд Docker на каждый день (с примерами)
1. docker run - запускает контейнер из образа Пример: docker run nginx 2. docker stop - останавливает работу контейнера Пример: docker stop container_name 3. docker ps - выводит список запущенных контейнеров Пример: docker ps 4. docker images - выводит список доступных образов Пример: docker images 5. docker pull - загружает образ из репозитория Пример: docker pull nginx 6. docker push - отправляет образ в репозиторий Пример: docker push username/image_name 7. docker build - создает новый образ на основе Dockerfile Пример: docker build -t image_name ...
2 года назад
Основы чистого кода с примерами (Java)
Чистый код - это код, который легко читается, понимается и поддерживается. Он должен быть легко модифицируемым и расширяемым, а также должен быть написан с учетом принципов ООП и других лучших практик программирования. Вот несколько основных аспектов чистого кода: 1. Именование переменных, методов и классов. Имена должны быть понятными и описательными. Они должны отражать назначение элемента кода и должны быть написаны в соответствии с общепринятыми правилами именования. 2. Структура кода. Код должен быть структурирован и организован таким образом, чтобы он был легко читаемым и понятным. Это может включать использование отступов, комментариев, разделения кода на функциональные блоки и т...
2 года назад
Рекурсия для чайников
В этой статье описывается рекурсия и её виды с примерами на языке Java. Начинаем с простого: Рекурсия в Java - это процесс, когда метод вызывает сам себя. Это может быть полезно для решения задач, которые могут быть разбиты на более мелкие подзадачи. Пример: ``` public class RecursionExample {   public static void main(String[] args) {      int result = factorial(5);      System.out.println(result);   }   public static int factorial(int n) {      if (n == 1) {         return 1;      } else...
138 читали · 2 года назад
EnumMap Java для самых маленьких
EnumMap - это конкретный тип Map, который используется для хранения пар «ключ-значение», где ключом является перечисление. Он обеспечивает более высокую производительность, чем HashMap, поскольку использует массивы для хранения элементов. EnumMap также является потокобезопасным. EnumMap имеет ряд преимуществ по сравнению с другими реализациями Map: 1. Он быстрее, чем HashMap, поскольку он использует массив вместо хэш-таблицы для хранения данных. 2. Он имеет более низкий порог входа, так как не требуется пользовательский хэш-код...
136 читали · 2 года назад
ExecutorPool для Чайников
О многопоточности в Java написано немало статей и книг, подготовлено много докладов. В данной статье я простыми словами постараюсь описать что такое ExecutorPool и на простом примере увидеть его в действии ExecutorPool Java - это пул потоков, используемый для управления и организации выполнения задач. ExecutorPool Java позволяет приложениям использовать несколько потоков для выполнения их задач. Это позволяет обрабатывать большое количество задач одновременно, что ускоряет обработку. ExecutorPool Java также упрощает рутинную работу, такую как создание, удаление и мониторинг потоков...
2 года назад
Eclipse vs IDEA
Среды разработки Eclipse и IDEA имеют много общего, но в то же время имеют ряд отличий. Eclipse является более функциональной платформой, предоставляющей разработчикам больше возможностей для создания приложений. Он имеет множество расширений, усовершенствованный интерфейс пользователя, а также доступ к большому числу различных расширений. IDEA, с другой стороны, больше похожа на среду разработки, созданную для ускорения разработки. Она имеет простой интуитивно понятный интерфейс, множество удобных функций, таких как refactoring, live templates, code completion, code analysis, version control integration...
2 года назад