ArrayList — это список на базе обычного массива, который автоматически расширяется при добавлении новых элементов.
В отличие от массива фиксированной длины, он не требует заранее задавать размер — новые элементы добавляются, и список растёт по мере необходимости.
Под капотом всё просто: если внутренний массив переполнен, создаётся новый, большего размера (по умолчанию: (старый размер * 1.5) + 1), и все элементы копируются туда.
ArrayList удобен, когда:
▶️ Нужно часто добавлять элементы в конец;▶️ Нужен быстрый доступ по индексу (get(i) работает за O(1));▶️ Не нужно часто вставлять/удалять элементы в середину (это дорого: O(n)).
Полезные методы:
▶ add() — добавить в конец;▶ add(index, obj) — вставить в нужную позицию;▶ set(index, obj) — заменить элемент;▶ clear() — очистить список;▶ remove(index) — удалить по индексу▶ indexOf(obj) — найти индекс по ссылке;▶ toArray() — преобразовать в массив;▶ size() — узнать количество элементов.
ArrayList — отличная коллекция для большинства задач, но если нужно часто вставлять и удалять в середине, лучше глянуть на LinkedList.
tags: #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤30😎21👍5
В статье собраны все ключевые изменения Java 25 — от Scoped Values и гибких конструкторов до квантово-устойчивой криптографии и Markdown в Javadoc.
Новый LTS-релиз показан через реальные примеры кода, чтобы сразу понять, что именно меняется и как это повлияет на работу с проектами.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥3
В видео разбирается, как упростить работу с коллекциями с помощью Stream API: фильтрация, сортировка, группировка и проверка условий.
Автор показывает, как заменить громоздкие императивные конструкции на лаконичный и читаемый код в функциональном стиле.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
В статье рассматривается проектирование системы по подходу DB-first и то, какие проблемы он помогает не просто решить, а устранить как явление.
База данных выступает как полноценный сервис с контрактом в виде схемы, а dbfirst позволяет сгенерировать SDK под эту схему для Java и Haskell.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Как управлять кешированием в HTTP?
Ответ:
Эти механизмы снижают нагрузку на сеть и ускоряют повторные загрузки.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤12👍5🔥3
В статье показано, как с помощью класса Filters удобно строить фильтры для запросов к MongoDB — например, искать документы по условию, диапазону или списку значений.
Примеры охватывают методы eq, gt, in, or, regex и другие, с пояснениями и готовыми сниппетами кода.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Где хранятся объекты?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤7🔥3👨💻1
В статье разбираются проблемы, с которыми можно столкнуться при использовании виртуальных потоков в Java.
Автор показывает реальные кейсы с Apache Http Client и Spring JPA, где виртуальные потоки упираются в ограничения библиотек и пулов соединений, и объясняет, как избежать типичных ловушек.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥2
Паттерны проектирования — это готовые решения распространенных задач, с которыми разработчики сталкиваются при создании сложных систем.
Этот репозиторий содержит всё необходимое для того, чтобы научиться применять их на практике.
Что внутри:
▶️ Реализация классических паттернов с чистым и понятным кодом▶️ Детальные объяснения принципов работы▶️ Блок-схемы, иллюстрирующие работу каждого паттерна
Понимание паттернов помогает писать более гибкий и поддерживаемый код, а этот репозиторий — хороший инструмент для изучения и практики.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6❤4
Блог владельца «Java Developer»
Жизнь в Telegram и за его пределами, бизнес на каналах и никакого программирования:
https://news.1rj.ru/str/+erFDhr6H1bgxZGZi
Жизнь в Telegram и за его пределами, бизнес на каналах и никакого программирования:
https://news.1rj.ru/str/+erFDhr6H1bgxZGZi
🤣2
В статье разбирается, как устроено взаимодействие Java и C++ через JNI, с какими подводными камнями сталкиваются Android-разработчики и какие приёмы помогают их обходить.
На реальном кейсе Яндекс Браузера показано, как писать и отлаживать JNI-код так, чтобы он оставался рабочим и безопасным.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥2🤯1
Как устроена архитектура брокеров в Kafka?
Ответ:
Данные всегда пишутся в лидера, который затем асинхронно реплицирует их фолловерам. Если лидер выходит из строя, Kafka автоматически выбирает нового из числа ISR. Это обеспечивает отказоустойчивость, хотя при смене лидера возможна кратковременная задержка в обслуживании.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤3👍3