Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Метод insert()

Метод insert() используется для вставки элемента в список в заданную позицию. Он принадлежит интерфейсу List и его реализациям, таким как ArrayList.

Этот метод вставляет указанный элемент element по заданному индексу index и сдвигает все последующие элементы вправо.

*Индексы начинаются с 0.
*Если индекс меньше 0 или больше размера списка, будет выброшено исключение.
#код
Что такое Nashorn?

Nashorn — это JavaScript движок на языке Java, который был введен в JDK 8.

Основные возможности:

— Позволяет выполнять JavaScript код из Java приложения. JavaScript код может взаимодействовать с java классами и объектами.

— Поддерживает ECMAScript 5.1 стандарт.

— JIT компиляция JavaScript кода в байт-код на лету, что обеспечивает высокую производительность.

— Потокобезопасность: один экземпляр Nashorn можно безопасно использовать из нескольких потоков.

— Интеграция с javax.script API для поддержки других скриптовых языков.

— Упрощает создание и встраивание скриптовых компонентов в Java приложениях.
Сколько языков программирования вы знаете?
#интерактив
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Узнаем количество файлов в папке

В данном примере мы задаем путь к папке, получаем список файлов в этой папке с помощью метода listFiles(), а затем выводим количество файлов в папке с помощью свойства length массива файлов.
#код
Что может произойти если два потока будут выполнять один и тот же код в программе?

В многопоточных приложениях возможны ситуации, когда два или более потока пытаются получить доступ и изменить общие данные одновременно.
Это может привести к непредсказуемому поведению и ошибкам, таким как race condition или deadlock.

Чтобы избежать таких проблем, нужно предотвратить одновременный доступ к общим данным с помощью синхронизации, например используя мониторы или блокировки.
Также полезны инструменты высокого уровня для синхронизации, такие как семафоры, очереди производителя-потребителя и другие коллекции из java.util.concurrent.

Важно тщательно продумывать доступ к общим данным в многопоточных приложениях, чтобы избежать некорректного поведения. Хороший дизайн многопоточности поможет создать надежное и эффективное приложение.
#вопросы_с_собеседований
Программирование — это не просто работа, это образ жизни и страсть для многих людей. Кто-то находит в кодинге творчество, кто-то — интересные задачи и возможности для саморазвития.

Расскажите, что именно вдохновляет вас писать код и создавать новые программы.

👉Опрос тут👈
BufferedInputStream

BufferedInputStream — это конкретный подкласс FilterInputStream, который оборачивает (буферизует) входной поток в буферизованный поток, делая операции чтения на потоке более эффективными и быстрыми.

BufferedInputStream используется для ускорения ввода, уменьшая количество чтений с диска или файла, добавляя дополнительный уровень функциональности вокруг базового потока.

В этом примере мы создаем объект FileInputStream для чтения файла test.txt. Затем мы оборачиваем этот поток в BufferedInputStream, чтобы увеличить эффективность чтения. Мы читаем каждый байт из файла и выводим его на консоль. После завершения чтения мы закрываем оба потока.
Например, если файл test.txt содержит строку «Привет, мир!». Тогда результатом выполнения этого кода будет вывод этой строки на консоль.
#код
⚖️ 25 курсов, книг и подкастов для развития критического мышления: учимся рассматривать ситуацию со всех возможных сторон и делать обоснованные выводы.

🤩 5 книг из статьи собрали в карточках. А если хотите быстро узнать, что такое критическое мышление и как его развить, тогда читайте наш недавний материал по теме.
🧑‍💻🪜 6 карьерных советов программисту

Советы, которые подойдут джуниорам, мидлам и сеньорам.

#туториал

Читать статью
ConcurrentSkipListSet

ConcurrentSkipListSet — это thread-safe реализация отсортированного множества на основе skip list.
Элементы в нем хранятся в сбалансированной иерархии, похожей на связный список и дубликаты не допускаются, также поддерживает unicity элементов.

Автоматически сортирует элементы по естественному порядку или компаратору. Все основные методы потокобезопасны из коробки.
Подходит для частого добавления/удаления/поиска элементов из разных потоков. Масштабируется лучше чем synchronized Set при увеличении количества потоков.

ConcurrentSkipListSet используется в многопоточных приложениях для хранения уникальных элементов в отсортированном порядке, выполнения быстрых операций поиска, добавления, удаления за время O(log n), избежания проблем синхронизации.
#код
System.arraycopy

System.arraycopy используется для копирования элементов из одного массива в другой. Этот метод предоставляет эффективный способ копирования данных между массивами. Синтаксис System.arraycopy:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

Параметры метода включают:

src: Исходный массив, из которого вы хотите скопировать элементы.
srcPos: Начальная позиция в исходном массиве, с которой начнется копирование.
dest: Целевой массив, в который вы хотите скопировать элементы.
destPos: Начальная позиция в целевом массиве, куда будут скопированы элементы.
length: Количество элементов, которое вы хотите скопировать.
#код
Почему строка является популярным ключом в HashMap в Java?

Поскольку строки неизменяемы, их хэш код вычисляется и кэшируется в момент создания, не требуя повторного пересчета при дальнейшем использовании. Поэтому в качестве ключа HashMap они будут обрабатываться быстрее.
Оптимизация поиска товаров в приложении-маркетплейсе на примере eBay с использованием Java

Сегодня мы рассмотрим тему, которая будет полезна для Senior Java Developer, работающего над разработкой маркетплейса, такого как eBay: оптимизация поиска товаров. Мы изучим пример реализации простой системы индексирования товаров на основе префиксного дерева (трие) для обеспечения эффективного поиска товаров.

Реализация префиксного дерева для индексирования товаров

1. Создайте класс TrieNode, который будет представлять узел в префиксном дереве

2. Создайте класс ProductTrie, который будет содержать методы для добавления и поиска товаров

3. Воспользуйтесь классом ProductTrie для индексирования и поиска товаров

В этом примере мы реализовали индексирование и поиск товаров с использованием префиксного дерева. Оптимизация поиска товаров важна для любого приложения-маркетплейса, такого как eBay. Этот пример может быть использован как отправная точка для оптимизации поиска товаров в вашем приложении.
#код