Обложка канала

Библиотека джависта. Страница 31

20804 @javaproglib

Полезные материалы по всему, что может быть полезно разработчику на Java.

  • Библиотека джависта

    Что нового в Java 20? Версия Java 20 должна быть выпущена в марте 2023 года, и ожидается, что в ней появится целый ряд изменений и новых функциональных возможностей. Мы подготовили обзор, описывающий, какие JEP с наибольшей вероятностью будут приняты в JDK 20, и какие из них, как мы надеемся, будут приняты в ближайшей перспективе! https://habr.com/ru/company/piter/blog/705478/
    Что нового в Java 20?

    Версия Java 20 должна быть выпущена в марте 2023 года , и ожидается, что в ней появится целый ряд изменений и новых функциональных возможностей . Мы подготовили обзор, описывающий, какие JEP с...

    Хабр
  • Библиотека джависта

    ❓Какие первые знания нужно получить тем, кто хочет стать Java-разработчиком? Познакомиться с алгоритмами! 22 декабря в 20:00 пройдет открытый урок «Бинарный поиск» в OTUS. ⚡️На этом занятии мы: — Разберем алгоритм бинарного поиска. — Узнаем, почему он быстрее линейного. — Познакомимся с понятием “О-большое“. ✨Вебинар может быть полезен ✨начинающим разработчикам, которые интересуются базовыми алгоритмами. Это возможность протестировать специализацию «Java Developer» — онлайн-курс для тех, кто хочет освоить новую професcию разработчика. Подробную информацию узнавайте у менеджера. 👉Для участия в вебинаре зарегистрируйтесь: https://otus.pw/Zb4P/ 🎄 Новогодняя распродажа! Скидки -23% на все курсы! Предложение ограничено
  • Библиотека джависта

    #вопросы_с_собеседований Какой способ клонирования предпочтительней? Наиболее безопасным и, следовательно, предпочтительным способом клонирования является использование специализированного конструктора копирования: • Отсутствие ошибок наследования (не нужно беспокоиться, что у наследников появятся новые поля, которые не будут склонированы через метод clone()); • Поля для клонирования указываются явно; • Возможность клонировать даже final поля.
  • Реклама

  • Библиотека джависта

    RabbitMQ + Spring boot + Docker. Отправляем и получаем сообщения через Producer и Consumer. Пошаговое руководство Меня зовут Андрей Вербицкий и я столкнулся с тем, что мое знакомство с RabbitMQ, а в частности его запуск на локальной машине и отправка сообщений в очередь с помощью приложения на Spring Boot, вылилась в несколько дней поисков информации о том, как это вообще работает, какие есть сущности и как в итоге переслать это сообщение. Я решил собрать все это в одном месте и сделать из этого практическое руководство, которое поможет из ничего получить рабочий прототип и понять как это работает. Эта статья ориентированная на новичков, которые только хотят познакомиться с RabbitMQ. Целью я поставил максимально простыми словами и по шагам рассказать, как быстро и легко поднять все окружение локально, отправить и получить сообщения через очередь. https://habr.com/ru/post/703352/
    RabbitMQ + Spring boot + Docker. Отправляем и получаем сообщения через Producer и Consumer. Пошаговое руководство

    Всем привет. Поскольку не смог найти полноценной статьи о том, как с нуля написать свой spring boot сервис с подключением к нему rabbitMQ, с конфигурацией всего это чуда через графический интерфейс и...

    Хабр
  • Библиотека джависта

    Расскажите про клонирование объектов. Использование оператора присваивания не создает нового объекта, а лишь копирует ссылку на объект. Таким образом, две ссылки указывают на одну и ту же область памяти, на один и тот же объект. Для создания нового объекта с таким же состоянием используется клонирование объекта. Класс Object содержит protected метод clone(), осуществляющий побитовое копирование объекта производного класса. Однако сначала необходимо переопределить метод clone() как public для обеспечения возможности его вызова. В переопределенном методе следует вызвать базовую версию метода super.clone(), которая и выполняет собственно клонирование. Чтобы окончательно сделать объект клонируемым, класс должен реализовать интерфейс Cloneable. Интерфейс Cloneable не содержит методов относится к маркерным интерфейсам, а его реализация гарантирует, что метод clone() класса Object возвратит точную копию вызвавшего его объекта с воспроизведением значений всех его полей. В противном случае метод генерирует исключение CloneNotSupportedException. Следует отметить, что при использовании этого механизма объект создается без вызова конструктора. Это решение эффективно только в случае, если поля клонируемого объекта представляют собой значения базовых типов и их обёрток или неизменяемых (immutable) объектных типов. Если же поле клонируемого типа является изменяемым ссылочным типом, то для корректного клонирования требуется другой подход. Причина заключается в том, что при создании копии поля оригинал и копия представляют собой ссылку на один и тот же объект. В этой ситуации следует также клонировать и сам объект поля класса. Такое клонирование возможно только в случае, если тип атрибута класса также реализует интерфейс Cloneable и переопределяет метод clone(). Так как, если это будет иначе вызов метода невозможен из-за его недоступности. Отсюда следует, что если класс имеет суперкласс, то для реализации механизма клонирования текущего класса-потомка необходимо наличие корректной реализации такого механизма в суперклассе. При этом следует отказаться от использования объявлений final для полей объектных типов по причине невозможности изменения их значений при реализации клонирования. Помимо встроенного механизма клонирования в Java для клонирования объекта можно использовать: • Специализированный конструктор копирования - в классе описывается конструктор, который принимает объект этого же класса и инициализирует поля создаваемого объекта значениями полей переданного. • Фабричный метод - (Factory method), который представляет собой статический метод, возвращающий экземпляр своего класса. • Механизм сериализации - сохранение и последующее восстановление объекта в/из потока байтов.
  • Библиотека джависта

    Зачем джависту нужно кэширование? Спешите получить новые знания на открытом уроке 19 декабря в 20:00 мск онлайн-курса «Java Developer. Professional» в OTUS. На занятии «Кэширование в Java» мы: 🔵 Поговорим о том, как кэширование помогает улучшить производительность Java-приложений. 🔵 Рассмотрим самые простые реализации на базе HashMap и популярные решения Ehcache и Caffeine. *⃣Занятие состоится в рамках онлайн-курса «Java Developer. Professional» от OTUS. Это отличная возможность перенять опыт преподавателя и посмотреть на процесс обучения изнутри. Пройдите вступительный тест, чтобы участвовать в вебинаре: https://otus.pw/BLsU/ 🎄Новогодняя распродажа! Скидки -23% на все курсы! Предложение ограничено. Реклама. Информация о рекламодателе на сайте otus.ru
  • Библиотека джависта

    Какие подкасты вы слушаете? Расскажите в комментариях ⬇️
  • Библиотека джависта

    Как преобразовать цветное изображение в черно-белое Иногда может потребоваться преобразовать изображение в двоичное. Другими словами, вам нужно преобразовать цветное изображение или изображение в оттенках серого в черно-белое изображение. Более подробно о работе с изображениями вы можете ознакомиться здесь.
  • Библиотека джависта

    ☕️🛣 Дорожная карта Java-разработчика в 2023 году: путь с нуля до первой работы В статье рассказываем, в каком порядке изучать Java в 2023 году и где бесплатно выучиться на Java-программиста. ⏸ Подождите. Я уже начинал изучать Java по разным дорожным картам, но бросал. С этой картой я дойду до цели? В нашей дорожной карте мы пробежались, так сказать, по верхам, обозначили основные темы для изучения. Дойдете или нет — зависит от вашей готовности пахать. 📅 Мне нужно в течение года получить работу Java-программиста и я готов пахать, чтобы добиться этой цели. И желательно бесплатно. Что посоветуете? Идти на курсы, в договоре которых черным по белому без всяких звездочек прописано, что вас трудоустроят. В противном случае студент не платит за обучение. 👨‍💻 Например, на курсах Kata Academy вы сможете бесплатно обучиться на Java-программиста за ~7 месяцев. А после трудоустройства на гарантированную ЗП от 100к — просто будете отчислять Kata Academy 17% от фактического дохода в течение 24 месяцев. В отличие от инфоцыган, Kata Academy заинтересована в вашем трудоустройстве, которое напрямую влияет на доход школы. ➡ Как стать Java-разработчиком, читайте в нашей статье. ➡ Курс Java-разработчика на сайте школы.
  • Библиотека джависта

    Java. Многопоточность (лекция 9)

    Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Углубленное программирование на Java" (зима 2015). Лекция №9 "Многопоточность" Лектор - Виталий Чибриков. Определение процессов и потоков. Роль операционной системы при работе с потоками. Интерфейс Runnable. Класс Thread. Доступ к объекту потока. Остановка выполнения и прерывание выполнения потока. Остановка текущего потока для окончания другого. Термины, связанные с многопоточностью. Критический участок кода. Семафор, Mutex. Мягкая и обязательная блокировки. Высокоуровневая конструкция Monitor. Взаимодействие потоков. Возможные ошибки одновременного доступа. Модель взаимодействия потоков через общую память. Синхронизация, её методы и состояния. Блокировка объектов. Ситуация Deadlock. Служба в отдельном потоке. Методы wait() и notify(). Контейнеры, безопасные для многопоточного доступа. Другие лекции курса | https://www.youtube.com/playlist?list=PLrCZzMib1e9qkzxEuU_huxtSAxrW1t9NZ Наш видеоканал | http://www.youtube.com/user/TPMGTU?sub_confirmation=1 Официальный сайт Технопарка | https://tech-mail.ru/ Официальный сайт Техносферы | https://sfera-mail.ru/ Технопарк в ВКонтакте | http://vk.com/tpmailru Техносфера в ВКонтакте | https://vk.com/tsmailru Блог на Хабре | http://habrahabr.ru/company/mailru/ #ТЕХНОПАРК #ТЕХНОСФЕРА x

    YouTube
  • Библиотека джависта

    Пишем Java код используя проект Lombok Можно долго спорить о необходимости и полезности проекта Lombok, но факт есть факт: количество кода для написания программы значительно сокращается. 😳 Предложенная сегодня статья расскажет о следующем: ✔️ Как работает Lombok ✔️ Формирование методов класса Object ✔️ Настройка аннотаций ✔️ Иммутабельные структуры данных ✔️ Delombok и др. Приятного чтения! Читать статью
    Write Fat-free Java Code with Project Lombok

    Java has some idiosyncrasies of its own and design choices that can make it rather verbose. While Java is a mature and performant programming language, developers frequently need to write boilerplate code that brings little or no real value other than complying with some set of constraints and conventions.

    Toptal Engineering Blog
  • Библиотека джависта

    Темная сторона Java, операторы k8s и корутины в Kotlin — на бесплатном Java-митапе от Сбера при поддержке JUG Ru Group. 📆 15 декабря, 18:00, онлайн, бесплатно. В программе: ✔ Максим Чудновский и Александр Козлов — «10 нюансов при разработке оператора для Kubernetes на Java» ✔ Рустам Курамшин — «Введение в Kotlin Coroutines» ✔ Роман Таранов — «Темная сторона Java: разбор последствий использования нативных функций (JNI)» После каждого доклада вы сможете подискутировать с другими участниками и задать вопросы спикерам.  Регистрируйтесь и участвуйте — это бесплатно.
  • Библиотека джависта

    #вопросы_с_собеседований Что такое класс Object? Какие в нем есть методы? Object это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследуют его методы: public boolean equals(Object obj) – служит для сравнения объектов по значению; int hashCode() – возвращает hash код для объекта; String toString() – возвращает строковое представление объекта; Class getClass() – возвращает класс объекта во время выполнения; protected Object clone() – создает и возвращает копию объекта; void notify() – возобновляет поток, ожидающий монитор; void notifyAll() – возобновляет все потоки, ожидающие монитор; void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
  • Библиотека джависта

    Запросы к MongoDB из Java с помощью билдера фильтров В этой статье разберемся, как использовать класс Filters для запросов к MongoDB. Класс Filters представляет собой билдер для удобного написания фильтров запросов. Фильтры — это некоторые условные операции, которые MongoDB использует для ограничения результатов. https://habr.com/ru/company/otus/blog/704488/
    Запросы к MongoDB из Java с помощью билдера фильтров

    1. Обзор В этой статье разберемся, как использовать класс Filters для запросов к MongoDB . Класс Filters представляет собой билдер для удобного написания фильтров запросов. Фильтры — это некоторые...

    Хабр
  • Библиотека джависта

    #вопросы_с_собеседований Какая основная разница между String, StringBuffer, StringBuilder? Класс String является неизменяемым (immutable) - модифицировать объект такого класса нельзя, можно лишь заменить его созданием нового экземпляра. Класс StringBuffer изменяемый - использовать StringBuffer следует тогда, когда необходимо часто модифицировать содержимое. Класс StringBuilder был добавлен в Java 5 и он во всем идентичен классу StringBuffer за исключением того, что он не синхронизирован и поэтому его методы выполняются значительно быстрей.
  • Реклама

  • Библиотека джависта

    Запросы к MongoDB из Java с помощью билдера фильтров

    1. Обзор В этой статье разберемся, как использовать класс Filters для запросов к MongoDB . Класс Filters представляет собой билдер для удобного написания фильтров запросов. Фильтры — это некоторые...

    Хабр
  • Библиотека джависта

    Разница дат в Java Иногда Вам может понадобиться рассчитать разницу между датами, измерить точку во времени в миллисекундах. В этом поможет код с картинки. Результат выполнения будет похож на это: Fri Jan 07 17:11:18 GMT 2022 Fri Jan 07 17:11:28 GMT 2022 Разница между датами: 10069 миллисекунд
  • Библиотека джависта

    MyBatis MyBatis — фреймворк для осуществления маппинга между Java-приложениями и базами данных SQL. Обычно для подключения приложения к реляционной БД необходим API Java Database Connectivity. Он позволяет разработчикам выполнять крупные SQL-операции за несколько строчек кода. MyBatis сравнивают с фреймворком Hibernate, так как оба являются посредниками между приложением и базой данных. Единственное отличие в том, что MyBatis не делает маппинг объектов Java в реляционную БД. https://mybatis.org/mybatis-3/