Этот метод используется для оптимизации больших наборов данных путем их постраничной передачи клиенту, что повышает отзывчивость сервиса и улучшает пользовательский опыт.
Этот подход предполагает отправку логов в буфер без блокировки и немедленное возвращение управления, вместо того чтобы записывать данные на диск при каждом вызове. Логи периодически сбрасываются на диск, что значительно снижает нагрузку на систему ввода-вывода.
Часто запрашиваемые данные могут храниться в кэше для ускорения их извлечения. Клиенты сначала проверяют кэш перед обращением к базе данных, а такие решения для хранения данных, как Redis, обеспечивают более быстрый доступ благодаря хранению в оперативной памяти.
Чтобы сократить время передачи данных, запросы и ответы можно сжимать, что ускоряет процессы загрузки и выгрузки.
Эта техника включает использование пула открытых соединений для управления взаимодействием с базой данных, что снижает накладные расходы, связанные с открытием и закрытием соединений каждый раз, когда требуется загрузить данные. Пул управляет жизненным циклом соединений для эффективного использования ресурсов.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4🔥4
Всем, кто связан с разработкой, архитектурой или управлением IT-проектами!
Хотите создавать решения, которые выдерживают сотни тысяч RPS?
14 октября специалист по высоконагруженным сервисам в крупном банке расскажет про обучение на онлайн-курсе «Архитектор высоких нагрузок» в OTUS.
Вы узнаете:
- о программе обучения на курсе «Архитектор высоких нагрузок»
- о том, какой уровень знаний необходим для поступления на курс
- о перспективах самой профессии
- о ваших перспективах в качестве архитектора высоких нагрузок
Также вы увидите проектные работы выпускников курса.
🗓 14 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Highload Architect»
🔴 Записаться на открытый урок: https://vk.cc/cCdk0N
Хотите создавать решения, которые выдерживают сотни тысяч RPS?
14 октября специалист по высоконагруженным сервисам в крупном банке расскажет про обучение на онлайн-курсе «Архитектор высоких нагрузок» в OTUS.
Вы узнаете:
- о программе обучения на курсе «Архитектор высоких нагрузок»
- о том, какой уровень знаний необходим для поступления на курс
- о перспективах самой профессии
- о ваших перспективах в качестве архитектора высоких нагрузок
Также вы увидите проектные работы выпускников курса.
🗓 14 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Highload Architect»
🔴 Записаться на открытый урок: https://vk.cc/cCdk0N
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍4❤3🔥2
shutdown hook
Shutdown hook позволяет приложению выполнить некоторый код перед завершением приложения.
Для создания hook нужно создать объект класса Thread и передать его в метод addShutdownHook() класса Runtime.
Когда приложение завершается, все заданные hook выполнятся последовательно.
Shutdown hook работает в случае нормального или аварийного завершения приложения и часто используется для освобождения ресурсов, закрытия соединений, сохранения данных.
@javalib #java
Shutdown hook позволяет приложению выполнить некоторый код перед завершением приложения.
Для создания hook нужно создать объект класса Thread и передать его в метод addShutdownHook() класса Runtime.
Когда приложение завершается, все заданные hook выполнятся последовательно.
Shutdown hook работает в случае нормального или аварийного завершения приложения и часто используется для освобождения ресурсов, закрытия соединений, сохранения данных.
@javalib #java
👍16🔥7❤4
ArrayList — это один из самых популярных классов для работы с динамическими массивами в Java. Но чтобы использовать его по максимуму, стоит учесть несколько важных моментов:
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥6❤5
Forwarded from Java Guru 🤓
Какой будет результат?
Anonymous Quiz
12%
howl woof sniff
6%
howl howl затем ошибка
20%
howl howl sniff
11%
howl woof затем ошибка
14%
Ошибка компиляции в строке 12
37%
Ошибка компиляции в строке 13
👍17🔥10❤8🎅1
unmodifiableMap
UnmodifiableMap используется для создания неизменяемого представления отображения, это позволяет предоставить доступ к отображению, не давая возможности изменить его.
Как видно из примера, при попытке изменить неизменяемое отображение unmodifiableMap выбрасывается исключение UnsupportedOperationException. Это гарантирует, что исходное отображение не будет случайно изменено.
@javalib #java
UnmodifiableMap используется для создания неизменяемого представления отображения, это позволяет предоставить доступ к отображению, не давая возможности изменить его.
Как видно из примера, при попытке изменить неизменяемое отображение unmodifiableMap выбрасывается исключение UnsupportedOperationException. Это гарантирует, что исходное отображение не будет случайно изменено.
@javalib #java
👍14❤6🔥3
Forwarded from Axiom JDK
Сенсация для разработчиков! Axiom JDK теперь доступен для свободной загрузки 🎉
Мы услышали вас и сделали это реальностью. Теперь каждый Java-разработчик в России может легко загрузить Axiom JDK, чтобы создавать свои проекты и домашние разработки, тестировать идеи и проводить эксперименты на отечественном инструменте мирового уровня.
Для разработки и демо доступны все LTS-версии Java (8, 11, 17, 21) и актуальная JDK 23, поддерживаются Windows, macOS и Linux. С регулярными обновлениями и полной документацией.
Загружайте прямо сейчас в личном кабинете разработчика:
lk.axiomjdk.ru
#Обновление_AxiomJDK
Мы услышали вас и сделали это реальностью. Теперь каждый Java-разработчик в России может легко загрузить Axiom JDK, чтобы создавать свои проекты и домашние разработки, тестировать идеи и проводить эксперименты на отечественном инструменте мирового уровня.
Для разработки и демо доступны все LTS-версии Java (8, 11, 17, 21) и актуальная JDK 23, поддерживаются Windows, macOS и Linux. С регулярными обновлениями и полной документацией.
Загружайте прямо сейчас в личном кабинете разработчика:
lk.axiomjdk.ru
#Обновление_AxiomJDK
👍23❤5🔥4
charBuffer
Метод charBuffer() используется для получения буфера символов из строки. Он принадлежит классу String.
Этот метод возвращает объект CharBuffer, который представляет последовательность символов строки.
CharBuffer позволяет эффективно читать и манипулировать символами строки без создания копий.
В этом примере создается строка «Hello». Затем из этой строки получаем буфер символов методом charBuffer().
В цикле посимвольно читаем из буфера символы и выводим их на экран.
@javalib #java
Метод charBuffer() используется для получения буфера символов из строки. Он принадлежит классу String.
Этот метод возвращает объект CharBuffer, который представляет последовательность символов строки.
CharBuffer позволяет эффективно читать и манипулировать символами строки без создания копий.
В этом примере создается строка «Hello». Затем из этой строки получаем буфер символов методом charBuffer().
В цикле посимвольно читаем из буфера символы и выводим их на экран.
@javalib #java
👍15❤5🔥4
Хотите узнать, как превратить массив в пирамиду и ускорить сортировку данных?
Ждем вас на бесплатном вебинаре 14 октября в 20:00 мск, где мы разберем:
- как реализовать алгоритм сортировки выбором с линейной сложностью;
- как превратить массив в пирамиду (кучу) для быстрого доступа к максимальному элементу;
- как создать алгоритм пирамидальной сортировки с квазилинейной сложностью — О(N log N);
- визуальные примеры работы алгоритма на конкретных числах.
🚀 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.
Встречаемся в преддверии старта курса «Алгоритмы и структуры данных». Все участники вебинара получат специальную цену на обучение!
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cCxj28
Ждем вас на бесплатном вебинаре 14 октября в 20:00 мск, где мы разберем:
- как реализовать алгоритм сортировки выбором с линейной сложностью;
- как превратить массив в пирамиду (кучу) для быстрого доступа к максимальному элементу;
- как создать алгоритм пирамидальной сортировки с квазилинейной сложностью — О(N log N);
- визуальные примеры работы алгоритма на конкретных числах.
🚀 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.
Встречаемся в преддверии старта курса «Алгоритмы и структуры данных». Все участники вебинара получат специальную цену на обучение!
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cCxj28
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍5❤3🔥2
Factory Method — это порождающий паттерн, который предоставляет интерфейс для создания объектов в суперклассе, но позволяет подклассам изменять тип создаваемых объектов.
Использование:
🔹 Когда создание объекта зависит от контекста.
🔹 Для увеличения расширяемости кода, позволяя создавать новые типы продуктов.
Преимущества:
Когда вы создаете объект напрямую с помощью new, ваш код жестко привязан к конкретному классу. Если вам нужно будет заменить этот класс другим, придется изменить все места, где он используется. С фабрикой вы работаете через абстракции (интерфейсы или абстрактные классы), а конкретные реализации могут меняться без изменения основного кода.
Фабрики могут включать сложную логику по созданию объектов, такую как:
▪️ Выбор нужного класса в зависимости от условий.
▪️ Управление жизненным циклом объекта.
▪️ Использование паттернов Singleton или Pooling внутри фабрики.
Используя фабрику, вы легко можете добавлять новые типы продуктов или изменять существующие без необходимости изменять основной код. Это упрощает расширение системы.
Фабрики облегчают тестирование кода. Вы можете использовать mock-объекты или подменять реализации фабрик для тестов, что упрощает создание тестируемых объектов и проверку кода.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤5🔥3
Реверс массива
Реверс массива в Java означает изменение порядка элементов массива на противоположный. То есть, элементы, которые изначально были в начале массива, становятся в конце, и наоборот.
Реверс массива может быть полезным во многих ситуациях программирования. Например, это может потребоваться для изменения порядка элементов перед их обработкой или выводом, или для выполнения действий, которые требуют доступа к элементам массива в обратном порядке.
Реверс массива в Java означает изменение порядка элементов массива на противоположный. То есть, элементы, которые изначально были в начале массива, становятся в конце, и наоборот.
Реверс массива может быть полезным во многих ситуациях программирования. Например, это может потребоваться для изменения порядка элементов перед их обработкой или выводом, или для выполнения действий, которые требуют доступа к элементам массива в обратном порядке.
🔥14❤5👍5
Как эффективно разделять приложения на микросервисы?
Расскажет Евгений Непомнящий — разработчик в IT Sense. Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- рассмотрите принципы функциональной декомпозиции;
- научитесь выделять отдельные компоненты приложения;
- погрузитесь в методику EventStorming;
- изучите подход API First Design;
- узнаете, как разрабатывать API.
Встречаемся 28 октября в 20:00 мск в рамках курса «Software Architect». Доступна рассрочка на обучение!
Ссылка для регистрации: https://vk.cc/cCB0Nj
Расскажет Евгений Непомнящий — разработчик в IT Sense. Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- рассмотрите принципы функциональной декомпозиции;
- научитесь выделять отдельные компоненты приложения;
- погрузитесь в методику EventStorming;
- изучите подход API First Design;
- узнаете, как разрабатывать API.
Встречаемся 28 октября в 20:00 мск в рамках курса «Software Architect». Доступна рассрочка на обучение!
Ссылка для регистрации: https://vk.cc/cCB0Nj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❤6🔥3👍2
💡 Совет
Вы можете немного улучшить его, включив форматирование, показ JPQL-запроса, сгенерировавшего запрос, и включив подсветку, которая добавляет некоторый цвет к выводу.
@javalib #java
show-sql
- это один из самых простых (но не самый оптимальный) способ посмотреть SQL запросы, сгенерированные Hibernate.Вы можете немного улучшить его, включив форматирование, показ JPQL-запроса, сгенерировавшего запрос, и включив подсветку, которая добавляет некоторый цвет к выводу.
@javalib #java
🔥21👍10❤9
Apache Commons CLI
Apache Commons CLI (Commons Command Line Interface) — это библиотека для обработки аргументов командной строки в Java. Она предоставляет удобный способ определения и обработки аргументов командной строки для ваших Java-приложений. Библиотека Apache Commons CLI упрощает работу с аргументами командной строки, включая разбор аргументов, создание справки и обработку различных опций командной строки.
@javalib #java
Apache Commons CLI (Commons Command Line Interface) — это библиотека для обработки аргументов командной строки в Java. Она предоставляет удобный способ определения и обработки аргументов командной строки для ваших Java-приложений. Библиотека Apache Commons CLI упрощает работу с аргументами командной строки, включая разбор аргументов, создание справки и обработку различных опций командной строки.
@javalib #java
👍12🔥5❤4
Любая крупная БД рано или поздно начинает испытывать проблемы с производительностью.
Причина проблем может крыться в медленной работе запросов. Неоптимизированные запросы влияют на скорость выполнения различных задач, потребляют много ресурсов и усложняют доступ к данным.
Как же их отслеживать и оптимизировать?
Узнаете на открытом вебинаре «Как оптимизировать производительность запросов в PostgreSQL?»
Вы узнаете:
- как оптимизация запросов влияет на скорость обработки данных
- что влияет на производительность запросов
- как правильно использовать индексы для повышения производительности
- как выявлять медленные запросы с помощью инструментов мониторинга
Будет интересно: аналитикам, инженерам и разработчикам БД, бэкенд-специалистам, тимлидам и проект-менеджерам.
Спикер: Алексей Железной, преподаватель OTUS и старший инженер данных.
Бонус! Всем участникам – скидка 5% на любой курс OTUS и полезные гайды.
16 октября, 18:30 МСК, Бесплатно
Записаться на событие - https://otus.pw/9tQk/?erid=LjN8Juzom
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Причина проблем может крыться в медленной работе запросов. Неоптимизированные запросы влияют на скорость выполнения различных задач, потребляют много ресурсов и усложняют доступ к данным.
Как же их отслеживать и оптимизировать?
Узнаете на открытом вебинаре «Как оптимизировать производительность запросов в PostgreSQL?»
Вы узнаете:
- как оптимизация запросов влияет на скорость обработки данных
- что влияет на производительность запросов
- как правильно использовать индексы для повышения производительности
- как выявлять медленные запросы с помощью инструментов мониторинга
Будет интересно: аналитикам, инженерам и разработчикам БД, бэкенд-специалистам, тимлидам и проект-менеджерам.
Спикер: Алексей Железной, преподаватель OTUS и старший инженер данных.
Бонус! Всем участникам – скидка 5% на любой курс OTUS и полезные гайды.
16 октября, 18:30 МСК, Бесплатно
Записаться на событие - https://otus.pw/9tQk/?erid=LjN8Juzom
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❤4👍4🔥2
Слышали про var? Его добавили в Java 10, чтобы облегчить нам жизнь. Но когда его лучше использовать, а когда стоит быть осторожнее?💡
Когда использовать var:
var list = new ArrayList<String>(); // Это список, и это сразу видно
var map = new HashMap<String, List<Integer>>(); // Чисто и просто
А вот где лучше избегать:
var result = process(); // И что за процесс тут?
Итог: var — отличный инструмент, но используйте его с умом. Вопрос к вам: а вы уже используете var в своих проектах? Если да, поделитесь опытом в комментариях!
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27❤5🔥3
Хотите научиться разрабатывать парсеры pdf-файлов и создавать полезные приложения?
Приглашаем на открытый урок «Разработка парсера pdf-файла».
🗓 24 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional»
На вебинаре разберем:
- как разработать парсер для выписки ВТБ банка в формате pdf;
- весь путь от идеи до практического применения;
- ответы на все возникающие вопросы.
⬇️ В результате урока вы получите практически полезное приложение с подробностями реализации.
Спикер Сергей Петрелевич — опытный Java/Kotlin-разработчик и преподаватель.
Все участники вебинара получат специальную цену на обучение!
🔗 Ссылка на регистрацию: https://vk.cc/cCEZJZ
Приглашаем на открытый урок «Разработка парсера pdf-файла».
🗓 24 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional»
На вебинаре разберем:
- как разработать парсер для выписки ВТБ банка в формате pdf;
- весь путь от идеи до практического применения;
- ответы на все возникающие вопросы.
Спикер Сергей Петрелевич — опытный Java/Kotlin-разработчик и преподаватель.
Все участники вебинара получат специальную цену на обучение!
🔗 Ссылка на регистрацию: https://vk.cc/cCEZJZ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤1
В чем отличия между TreeSet и HashSet?
Основное отличие между TreeSet и HashSet заключается в том, что TreeSet хранит элементы в отсортированном порядке, в то время как порядок хранения элементов в HashSet не определен. TreeSet также обеспечивает быстрый поиск и извлечение элементов в отсортированном порядке.
@javalib #java
Основное отличие между TreeSet и HashSet заключается в том, что TreeSet хранит элементы в отсортированном порядке, в то время как порядок хранения элементов в HashSet не определен. TreeSet также обеспечивает быстрый поиск и извлечение элементов в отсортированном порядке.
@javalib #java
👍21🔥5❤3
Что такое абстрактный метод в языке Java?
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
@javalib #java
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
@javalib #java
👍15❤4🔥4