shutdown hook
Shutdown hook позволяет приложению выполнить некоторый код перед завершением приложения.
Для создания hook нужно создать объект класса Thread и передать его в метод addShutdownHook() класса Runtime.
Когда приложение завершается, все заданные hook выполнятся последовательно.
Shutdown hook работает в случае нормального или аварийного завершения приложения и часто используется для освобождения ресурсов, закрытия соединений, сохранения данных.
✅ Java библиотека #java
Shutdown hook позволяет приложению выполнить некоторый код перед завершением приложения.
Для создания hook нужно создать объект класса Thread и передать его в метод addShutdownHook() класса Runtime.
Когда приложение завершается, все заданные hook выполнятся последовательно.
Shutdown hook работает в случае нормального или аварийного завершения приложения и часто используется для освобождения ресурсов, закрытия соединений, сохранения данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥9❤5
ArrayList — это один из самых популярных классов для работы с динамическими массивами в Java. Но чтобы использовать его по максимуму, стоит учесть несколько важных моментов:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤10🔥6
unmodifiableMap
UnmodifiableMap используется для создания неизменяемого представления отображения, это позволяет предоставить доступ к отображению, не давая возможности изменить его.
Как видно из примера, при попытке изменить неизменяемое отображение unmodifiableMap выбрасывается исключение UnsupportedOperationException. Это гарантирует, что исходное отображение не будет случайно изменено.
✅ Java библиотека #java
UnmodifiableMap используется для создания неизменяемого представления отображения, это позволяет предоставить доступ к отображению, не давая возможности изменить его.
Как видно из примера, при попытке изменить неизменяемое отображение unmodifiableMap выбрасывается исключение UnsupportedOperationException. Это гарантирует, что исходное отображение не будет случайно изменено.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥3
charBuffer
Метод charBuffer() используется для получения буфера символов из строки. Он принадлежит классу String.
Этот метод возвращает объект CharBuffer, который представляет последовательность символов строки.
CharBuffer позволяет эффективно читать и манипулировать символами строки без создания копий.
В этом примере создается строка «Hello». Затем из этой строки получаем буфер символов методом charBuffer().
В цикле посимвольно читаем из буфера символы и выводим их на экран.
✅ Java библиотека #java
Метод charBuffer() используется для получения буфера символов из строки. Он принадлежит классу String.
Этот метод возвращает объект CharBuffer, который представляет последовательность символов строки.
CharBuffer позволяет эффективно читать и манипулировать символами строки без создания копий.
В этом примере создается строка «Hello». Затем из этой строки получаем буфер символов методом charBuffer().
В цикле посимвольно читаем из буфера символы и выводим их на экран.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥2
Factory Method — это порождающий паттерн, который предоставляет интерфейс для создания объектов в суперклассе, но позволяет подклассам изменять тип создаваемых объектов.
Использование:
🔹 Когда создание объекта зависит от контекста.
🔹 Для увеличения расширяемости кода, позволяя создавать новые типы продуктов.
Преимущества:
Когда вы создаете объект напрямую с помощью new, ваш код жестко привязан к конкретному классу. Если вам нужно будет заменить этот класс другим, придется изменить все места, где он используется. С фабрикой вы работаете через абстракции (интерфейсы или абстрактные классы), а конкретные реализации могут меняться без изменения основного кода.
Фабрики могут включать сложную логику по созданию объектов, такую как:
▪️ Выбор нужного класса в зависимости от условий.
▪️ Управление жизненным циклом объекта.
▪️ Использование паттернов Singleton или Pooling внутри фабрики.
Используя фабрику, вы легко можете добавлять новые типы продуктов или изменять существующие без необходимости изменять основной код. Это упрощает расширение системы.
Фабрики облегчают тестирование кода. Вы можете использовать mock-объекты или подменять реализации фабрик для тестов, что упрощает создание тестируемых объектов и проверку кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤9🔥5
Реверс массива
Реверс массива в Java означает изменение порядка элементов массива на противоположный. То есть, элементы, которые изначально были в начале массива, становятся в конце, и наоборот.
Реверс массива может быть полезным во многих ситуациях программирования. Например, это может потребоваться для изменения порядка элементов перед их обработкой или выводом, или для выполнения действий, которые требуют доступа к элементам массива в обратном порядке.
✅ Java библиотека #java
Реверс массива в Java означает изменение порядка элементов массива на противоположный. То есть, элементы, которые изначально были в начале массива, становятся в конце, и наоборот.
Реверс массива может быть полезным во многих ситуациях программирования. Например, это может потребоваться для изменения порядка элементов перед их обработкой или выводом, или для выполнения действий, которые требуют доступа к элементам массива в обратном порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥3
Наш чатик с вакансиями и резюме, присоединяйся: https://news.1rj.ru/str/job_java
Telegram
Java Job - Вакансии и резюме
Наш канал по Java @javalib
Вакансии Java, также можете скидывать свои резюме!
Купить звёзды: @PremiumBot
Вакансии Java, также можете скидывать свои резюме!
Купить звёзды: @PremiumBot
❤3👍3🔥2
💡 Совет
Вы можете немного улучшить его, включив форматирование, показ JPQL-запроса, сгенерировавшего запрос, и включив подсветку, которая добавляет некоторый цвет к выводу.
✅ Java библиотека #java
show-sql - это один из самых простых (но не самый оптимальный) способ посмотреть SQL запросы, сгенерированные Hibernate.Вы можете немного улучшить его, включив форматирование, показ JPQL-запроса, сгенерировавшего запрос, и включив подсветку, которая добавляет некоторый цвет к выводу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥8❤7
Apache Commons CLI
Apache Commons CLI (Commons Command Line Interface) — это библиотека для обработки аргументов командной строки в Java. Она предоставляет удобный способ определения и обработки аргументов командной строки для ваших Java-приложений. Библиотека Apache Commons CLI упрощает работу с аргументами командной строки, включая разбор аргументов, создание справки и обработку различных опций командной строки.
✅ Java библиотека #java
Apache Commons CLI (Commons Command Line Interface) — это библиотека для обработки аргументов командной строки в Java. Она предоставляет удобный способ определения и обработки аргументов командной строки для ваших Java-приложений. Библиотека Apache Commons CLI упрощает работу с аргументами командной строки, включая разбор аргументов, создание справки и обработку различных опций командной строки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥6👍5
Слышали про var? Его добавили в Java 10, чтобы облегчить нам жизнь. Но когда его лучше использовать, а когда стоит быть осторожнее?💡
Когда использовать var:
var list = new ArrayList<String>(); // Это список, и это сразу видно
var map = new HashMap<String, List<Integer>>(); // Чисто и просто
А вот где лучше избегать:
var result = process(); // И что за процесс тут?
Итог: var — отличный инструмент, но используйте его с умом. Вопрос к вам: а вы уже используете var в своих проектах? Если да, поделитесь опытом в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤6🔥3☃1
Kotlin в иллюстрациях (2025) True PDF
Программируйте весело и эффективно – изучайте Kotlin с удовольствием!
Эта книга проведет вас по основам языка шаг за шагом – с забавными иллюстрациями, понятными примерами и четкими объяснениями. Вы усвоите основные понятия по порядку и без лишней сложности, построив прочную базу знаний. Автор более 25 лет занимается разработкой программного обеспечения, а с 2017 года пишет о Kotlin и рисует о нем смешные комиксы.
Издание станет идеальным помощником начинающим изучать программирование или желающим восполнить пробелы в знаниях.
Программируйте весело и эффективно – изучайте Kotlin с удовольствием!
Эта книга проведет вас по основам языка шаг за шагом – с забавными иллюстрациями, понятными примерами и четкими объяснениями. Вы усвоите основные понятия по порядку и без лишней сложности, построив прочную базу знаний. Автор более 25 лет занимается разработкой программного обеспечения, а с 2017 года пишет о Kotlin и рисует о нем смешные комиксы.
Издание станет идеальным помощником начинающим изучать программирование или желающим восполнить пробелы в знаниях.
👍6🔥5❤4
В чем отличия между TreeSet и HashSet?
Основное отличие между TreeSet и HashSet заключается в том, что TreeSet хранит элементы в отсортированном порядке, в то время как порядок хранения элементов в HashSet не определен. TreeSet также обеспечивает быстрый поиск и извлечение элементов в отсортированном порядке.
✅ Java библиотека #java
Основное отличие между TreeSet и HashSet заключается в том, что TreeSet хранит элементы в отсортированном порядке, в то время как порядок хранения элементов в HashSet не определен. TreeSet также обеспечивает быстрый поиск и извлечение элементов в отсортированном порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥3
Что такое абстрактный метод в языке Java?
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
✅ Java библиотека #java
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥2
Класс DateTimeFormatter
Класс DateTimeFormatter используется для форматирования и парсинга объектов даты и времени.
Он позволяет указать нужный формат даты и времени при выводе этих данных в строку или при чтении из строки в объекты LocalDateTime, LocalDate и другие классы API даты и времени.
✅ Java библиотека #java
Класс DateTimeFormatter используется для форматирования и парсинга объектов даты и времени.
Он позволяет указать нужный формат даты и времени при выводе этих данных в строку или при чтении из строки в объекты LocalDateTime, LocalDate и другие классы API даты и времени.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍9🔥3
Метод split
Метод split() используется для разбиения строки на подстроки по заданному разделителю. Он принимает один параметр — регулярное выражение, по которому будет производиться разбиение строки и возвращает массив строк (String[]), содержащий подстроки.
Если в качестве разделителя передать пробел (» «), то строка разбивается по пробелам на отдельные слова. Также можно указать число в качестве второго параметра, это будет лимит количества элементов.
✅ Java библиотека #java
Метод split() используется для разбиения строки на подстроки по заданному разделителю. Он принимает один параметр — регулярное выражение, по которому будет производиться разбиение строки и возвращает массив строк (String[]), содержащий подстроки.
Если в качестве разделителя передать пробел (» «), то строка разбивается по пробелам на отдельные слова. Также можно указать число в качестве второго параметра, это будет лимит количества элементов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5🔥2
CyclicBarrier — это синхронизатор в Java, который позволяет нескольким потокам остановиться и дождаться друг друга в определённой точке (барьере) перед продолжением работы. Он создаётся с фиксированным числом потоков, которые должны достичь барьера, прежде чем все они смогут продолжить выполнение.
Как это работает:
Когда использовать:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍10🔥8⚡2
— Лямбда-выражения имеют лаконичный синтаксис по сравнению с анонимными классами. Лямбды проще читать и писать, так как они не требуют явного объявления метода, тогда как анонимные классы содержат больше «лишнего» кода.
— Лямбды используются, когда интерфейс имеет один абстрактный метод (функциональные интерфейсы), тогда как анонимные классы могут реализовать несколько методов и применяться для интерфейсов с несколькими методами.
— Лямбды могут быть более эффективными, так как они компилируются в байт-код, который может быть оптимизирован. Анонимные классы обычно компилируются как отдельные классы, что может требовать больше ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍10🔥4
Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27❤6🔥6
Proxy — это структурный паттерн, который предоставляет объект-заместитель для управления доступом к другому объекту, обеспечивая контроль над его использованием.
Использование:
Преимущества:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍11🔥4
Исключение в static блоке кода
Если в статическом блоке инициализации возникнет исключение, то это приведет к ошибке при инициализации класса.
Решить эту проблему можно двумя способами:
1. Перехватить исключение с помощью try-catch в этом же статическом блоке.
2. Перехватить исключение в последующем методе, куда оно будет выброшено, если не обрабатывать исключение в статическом блоке.
Как видно из примера, исключение из статического блока перехватывается в нем же блоком try-catch.
После этого класс инициализируется успешно, и его статический метод можно вызвать.
Если не обрабатывать исключение в статическом блоке, то оно будет выброшено дальше и его можно будет поймать в методе main, как показано в примере.
✅ Java библиотека #java
Если в статическом блоке инициализации возникнет исключение, то это приведет к ошибке при инициализации класса.
Решить эту проблему можно двумя способами:
1. Перехватить исключение с помощью try-catch в этом же статическом блоке.
2. Перехватить исключение в последующем методе, куда оно будет выброшено, если не обрабатывать исключение в статическом блоке.
Как видно из примера, исключение из статического блока перехватывается в нем же блоком try-catch.
После этого класс инициализируется успешно, и его статический метод можно вызвать.
Если не обрабатывать исключение в статическом блоке, то оно будет выброшено дальше и его можно будет поймать в методе main, как показано в примере.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍7🔥4
❓Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
👩💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.
👩💻 Kotlin Developer - самый топовый канал для котлин разработчика!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥2