Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
JAVA SPRING EXCEPTION HANDLING | ОБРАБОТКА ИСКЛЮЧЕНИЙ ЗА 5 МИНУТ
В этом видео речь пойдет об обработке исключений на уровне контроллера на языке Java. Покажу, какие инструменты есть у Spring.
Код можно посмотреть тут:
https://github.com/dispikerton/exceptionHandling
00:23 - try catch, ResponseEntity
00:47 - наследование…
Код можно посмотреть тут:
https://github.com/dispikerton/exceptionHandling
00:23 - try catch, ResponseEntity
00:47 - наследование…
👍21🔥5
Kafka в действии (2022) True PDF
Это практическое руководство показывает, как использовать распределенную потоковую платформу Apache Kafka для удовлетворения различных бизнес-требований. Рассказывается, как устроена Kafka и где она может пригодиться на практике; описываются характеристики проектов, в которых может пригодиться эта платформа. Рассматриваются основные ее компоненты – клиенты и кластер, представлены варианты улучшения работающего кластера. Книга адресована разработчикам, желающим ознакомиться с идеей потоковой обработки данных. Для изучения примеров кода понадобятся базовые знания командной строки; желательно иметь навыки программирования на языке Java.
Это практическое руководство показывает, как использовать распределенную потоковую платформу Apache Kafka для удовлетворения различных бизнес-требований. Рассказывается, как устроена Kafka и где она может пригодиться на практике; описываются характеристики проектов, в которых может пригодиться эта платформа. Рассматриваются основные ее компоненты – клиенты и кластер, представлены варианты улучшения работающего кластера. Книга адресована разработчикам, желающим ознакомиться с идеей потоковой обработки данных. Для изучения примеров кода понадобятся базовые знания командной строки; желательно иметь навыки программирования на языке Java.
👍18
Как устроен HashMap?
HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент. Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.👍40❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Разбираемся с монадами.
В этом видео я объясняю на примерах монады, и какая польза от них для Java разработчика. Разбираем что такое монады, как они устроены и для чего применяются. Упор делается на практическую сторону вопроса.
Исходные коды:
https://github.com/Arhiser/java_t…
Исходные коды:
https://github.com/Arhiser/java_t…
👍17🔥6❤2
Computer Science для программиста-самоучки. Все что нужно знать о структурах данных и алгоритмах (2023) PDF
Книги Кори Альтхоффа вдохновили сотни тысяч людей на самостоятельное изучение программирования. Чтобы стать профи в программировании, не обязательно иметь диплом в области computer science, и личный опыт Кори подтверждает это: он стал разработчиком ПО в eBay и добился этого самостоятельно. Познакомьтесь с наиболее важными темами computer science, в которых должен разбираться каждый программист-самоучка, мечтающий о выдающейся карьере, — это структуры данных и алгоритмы. «Computer Science для программиста-самоучки» поможет вам пройти техническое интервью, без которого нельзя получить работу в «айти». Книга написана для абсолютных новичков, поэтому у вас не должно возникнуть трудностей, даже если ранее вы ничего не слышали о computer science.
Книги Кори Альтхоффа вдохновили сотни тысяч людей на самостоятельное изучение программирования. Чтобы стать профи в программировании, не обязательно иметь диплом в области computer science, и личный опыт Кори подтверждает это: он стал разработчиком ПО в eBay и добился этого самостоятельно. Познакомьтесь с наиболее важными темами computer science, в которых должен разбираться каждый программист-самоучка, мечтающий о выдающейся карьере, — это структуры данных и алгоритмы. «Computer Science для программиста-самоучки» поможет вам пройти техническое интервью, без которого нельзя получить работу в «айти». Книга написана для абсолютных новичков, поэтому у вас не должно возникнуть трудностей, даже если ранее вы ничего не слышали о computer science.
👍17🔥4
Согласно Кнуту и Кормену существует две основных реализации хэш-таблицы: на основе открытой адресации и на основе метода цепочек. Как реализована HashMap? Почему, по вашему мнению, была выбрана именно эта реализация? В чем плюсы и минусы каждого подхода?
Для метода цепочек коэффициент заполнения может быть больше 1 и с увеличением числа элементов производительность убывает линейно. Такие таблицы удобно использовать, если заранее неизвестно количество хранимых элементов, либо их может быть достаточно много, что приводит к большим значениям коэффициента заполнения.
Среди методов открытой реализации различают:
• линейное пробирование;
• квадратичное пробирование;
• двойное хэширование.
Недостатки структур с методом открытой адресации:
• Количество элементов в хэш-таблице не может превышать размера массива. По мере увеличения числа элементов и повышения коэффициента заполнения производительность структуры резко падает, поэтому необходимо проводить перехэширование.
• Сложно организовать удаление элемента.
• Первые два метода открытой адресации приводят к проблеме первичной и вторичной группировок.
Преимущества хэш-таблицы с открытой адресацией:
• отсутствие затрат на создание и хранение объектов списка;
• простота организации сериализации/десериализации
HashMap реализован с использованием метода цепочек, т.е. каждой ячейке массива (корзине) соответствует свой связный список и при возникновении коллизии осуществляется добавление нового элемента в этот список.Для метода цепочек коэффициент заполнения может быть больше 1 и с увеличением числа элементов производительность убывает линейно. Такие таблицы удобно использовать, если заранее неизвестно количество хранимых элементов, либо их может быть достаточно много, что приводит к большим значениям коэффициента заполнения.
Среди методов открытой реализации различают:
• линейное пробирование;
• квадратичное пробирование;
• двойное хэширование.
Недостатки структур с методом открытой адресации:
• Количество элементов в хэш-таблице не может превышать размера массива. По мере увеличения числа элементов и повышения коэффициента заполнения производительность структуры резко падает, поэтому необходимо проводить перехэширование.
• Сложно организовать удаление элемента.
• Первые два метода открытой адресации приводят к проблеме первичной и вторичной группировок.
Преимущества хэш-таблицы с открытой адресацией:
• отсутствие затрат на создание и хранение объектов списка;
• простота организации сериализации/десериализации
👍19🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
УТЕЧКА ПАМЯТИ JAVA ЗА 6 МИНУТ
GCViewer:
https://github.com/chewiebug/GCViewer/wiki/Changelog
Тайм коды:
00:00 - Определение утечки памяти
00:28 - Демонстрация OutOfMemoryError
00:40 - Снимок кучи и способы, как его сделать
02:04 - Утечка через статические поля
02:38 - Анализ снимка…
https://github.com/chewiebug/GCViewer/wiki/Changelog
Тайм коды:
00:00 - Определение утечки памяти
00:28 - Демонстрация OutOfMemoryError
00:40 - Снимок кучи и способы, как его сделать
02:04 - Утечка через статические поля
02:38 - Анализ снимка…
👍22
Java. Эффективное программирование, 3-е издание (2019) PDF, DJVU
Язык программирования Java существенно изменился со времени предыдущего издания книги, опубликованного вскоре после выпуска Java б. Этот классический труд тщательно обновлен, чтобы читатели могли в полной мере воспользоваться возможностями последних версий языка и его библиотек функций. В современном Java поддерживается несколько парадигм программирования.
Как и в предыдущих изданиях, каждая глава книги состоит из ряда разделов, в каждом из которых описаны конкретные советы, приведены тонкости платформы Java и содержатся обновленные примеры кода. Для каждой темы приводятся всеобъемлющее описание и пояснения.
Третье издание охватывает особенности языка программирования и библиотек, появившихся в Java 7, 8 и 9, в том числе конструкции функционального программирования, добавленные к своим объектно-ориентированным корням. В книгу включены также многие новые советы и глава, посвященная лямбда-выражениям и потокам.
Язык программирования Java существенно изменился со времени предыдущего издания книги, опубликованного вскоре после выпуска Java б. Этот классический труд тщательно обновлен, чтобы читатели могли в полной мере воспользоваться возможностями последних версий языка и его библиотек функций. В современном Java поддерживается несколько парадигм программирования.
Как и в предыдущих изданиях, каждая глава книги состоит из ряда разделов, в каждом из которых описаны конкретные советы, приведены тонкости платформы Java и содержатся обновленные примеры кода. Для каждой темы приводятся всеобъемлющее описание и пояснения.
Третье издание охватывает особенности языка программирования и библиотек, появившихся в Java 7, 8 и 9, в том числе конструкции функционального программирования, добавленные к своим объектно-ориентированным корням. В книгу включены также многие новые советы и глава, посвященная лямбда-выражениям и потокам.
👍13❤🔥3🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Dithering. Алгоритм генерации черно-белых изображений.
В этом видео я рассказываю о генерации изображений, которые состоят только из двух цветов - черного и белого. Разбираем соответствующий алгоритм на языке программирования Java.
Исходные коды:
https://github.com/Arhiser/java_tutorials/blob/master/src/ru/…
Исходные коды:
https://github.com/Arhiser/java_tutorials/blob/master/src/ru/…
👍10🔥3
Как работает HashMap при попытке сохранить в него два элемента по ключам с одинаковым hashCode(), но для которых equals() == false?
По значению
По значению
hashCode() вычисляется индекс ячейки массива, в список которой этот элемент будет добавлен. Перед добавлением осуществляется проверка на наличие элементов в этой ячейке. Если элементы с таким hashCode() уже присутствует, но их equals() методы не равны, то элемент будет добавлен в конец списка.👍41
Kotlin: Сборник рецептов (2021) PDF
Из этого уникального сборника рецептов разработчики узнают, как применять язык Kotlin в Java-проектах. Практические рецепты будут полезны не только новичкам в Kotlin, но и опытным программистам. Кен Коузен показывает, как решать проблемы, исходя из конкретных вариантов использования, а не из базового синтаксиса Kotlin. Вы задаете вопрос, а эта книга дает ответ. Kotlin уже довольно широко используется в разработке для Android, но его можно использовать везде, где применяется Java, а также для разработки в iOS, для создания приложений в машинном коде, для генерации кода на javanoscript и т. д. Присоединяйтесь к сообществу Kotlin и начинайте создавать новые проекты уже сегодня!
Из этого уникального сборника рецептов разработчики узнают, как применять язык Kotlin в Java-проектах. Практические рецепты будут полезны не только новичкам в Kotlin, но и опытным программистам. Кен Коузен показывает, как решать проблемы, исходя из конкретных вариантов использования, а не из базового синтаксиса Kotlin. Вы задаете вопрос, а эта книга дает ответ. Kotlin уже довольно широко используется в разработке для Android, но его можно использовать везде, где применяется Java, а также для разработки в iOS, для создания приложений в машинном коде, для генерации кода на javanoscript и т. д. Присоединяйтесь к сообществу Kotlin и начинайте создавать новые проекты уже сегодня!
👍9🔥2
Какое начальное количество корзин в HashMap?
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
👍32
Возможна ли ситуация, когда HashMap выродится в список даже с ключами имеющими разные hashCode()?
Это возможно в случае, если метод, определяющий номер корзины будет возвращать одинаковые значения.
Это возможно в случае, если метод, определяющий номер корзины будет возвращать одинаковые значения.
👍21☃1
Вы когда-нибудь искали подробное введение в Maven, которое было бы веселым и интересным одновременно? Тогда вы его нашли.
В этом видео вы узнаете, как использовать Maven как профессионал: установка, использование Maven вместе с IDE, основы Maven и многое другое.
В этом видео вы узнаете, как использовать Maven как профессионал: установка, использование Maven вместе с IDE, основы Maven и многое другое.
YouTube
Maven Tutorial - Crash Course
Ever looked for a comprehensive intro to Maven that is fun and entertaining at the same time? Then have a look at this brand-new episode of "Marco Codes": Maven Tutorial [Crash Course].
In this video, you'll learn how to use Maven like a professional: installations…
In this video, you'll learn how to use Maven like a professional: installations…
👍17❤1🔥1
Troubleshooting Java: Read, debug, and optimize JVM applications (Final Release) (2023) True PDF
Troubleshooting Java: Read, debug, and optimize JVM applications teaches you how to better understand Java application code. It’s filled with code investigation techniques for tricky issues like uncovering glitches in code logic or locating intermittent runtime problems. Armed with these tools and practices you’ll save time whenever you need to identify performance issues, understand dependencies, discover the root cause of crashes, or interpret unexpected results. Whether you’re a senior software engineer or you’re just getting started, this invaluable guide will help you in the fundamental task of understanding how your applications work.
Troubleshooting Java: Read, debug, and optimize JVM applications teaches you how to better understand Java application code. It’s filled with code investigation techniques for tricky issues like uncovering glitches in code logic or locating intermittent runtime problems. Armed with these tools and practices you’ll save time whenever you need to identify performance issues, understand dependencies, discover the root cause of crashes, or interpret unexpected results. Whether you’re a senior software engineer or you’re just getting started, this invaluable guide will help you in the fundamental task of understanding how your applications work.
👍13
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Fluent Interface.
В этом видео разговор идет о таком приеме в разработке, как Fluent Interface. Это когда вызовы методов объекта объединяются в цепочку. На примерах показываются варианты использования данного приема, и как его написать на языке программирования Java.
Поддержать…
Поддержать…
👍12☃1🔥1
Предметно-ориентированное проектирование в Enterprise Java (2020) PDF
В книге подробно рассматриваются реализации шаблонов предметно-ориентированного проектирования с применением различных инструментальных средств и рабочих программных сред из Enterprise Java Space. При таком подходе читатель получает завершенную картину и возможность практического применения любого из этих средств в процессе предметно-ориентированного проектирования.
В начальных главах описывается эталонная реализация проекта Cargo Tracker - создание монолитного приложения с использованием платформы Jakarta EE. Затем рассматривается полный процесс преобразования монолитного приложения в архитектуру, основанную на микросервисах. В заключительных главах демонстрируется создание версии приложения с использованием шаблонов CQRS и Event Sourcing (ES); основной рабочей средой является Axon Framework.
В книге подробно рассматриваются реализации шаблонов предметно-ориентированного проектирования с применением различных инструментальных средств и рабочих программных сред из Enterprise Java Space. При таком подходе читатель получает завершенную картину и возможность практического применения любого из этих средств в процессе предметно-ориентированного проектирования.
В начальных главах описывается эталонная реализация проекта Cargo Tracker - создание монолитного приложения с использованием платформы Jakarta EE. Затем рассматривается полный процесс преобразования монолитного приложения в архитектуру, основанную на микросервисах. В заключительных главах демонстрируется создание версии приложения с использованием шаблонов CQRS и Event Sourcing (ES); основной рабочей средой является Axon Framework.
👍14🔥1
Не во всех случаях стоит использовать ORM. Если вам нужен полный контроль или вы используете простые сущности, то возможно вам стоит присмотреться к Spring Jdbc.
Подготовил в этом видео материал с минимальным количеством кода и всяких настроек, которыми кишат остальные видеоуроки.
Раскрываю, почему лучше использовать NamedParameterJdbcTemplate, а не JdbcTemplate.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
JAVA SPRING JDBC: CRUD БЕЗ ORM
Не во всех случаях стоит использовать ORM. Если вам нужен полный контроль или вы используете простые сущности, то возможно вам стоит присмотреться к Spring Jdbc.
Подготовил в этом видео материал с минимальным количеством кода и всяких настроек, которыми…
Подготовил в этом видео материал с минимальным количеством кода и всяких настроек, которыми…
👍17
👩💻 Дзен ищет Java-разработчика в команду инфраструктуры статистики
Компании нужен middle или senior, чтобы строить большой DWH, разрабатывать высоконагруженную систему и улучшать сервисы, отвечающие за работу подписки и ленты каналов. Соответственно, нужны знания Java 17, aka CS 101 и хоть какое-то взаимодействие с популярными NoSQL-решениями.
Немного контекста: команда инфраструктуры статистики создает сервисы, в задачи которых входят обработка и поставка всех клиентских событий и клиентской статистики; инфраструктура подготовки данных для аналитики и А/Б-тестирования.
Откликнуться на вакансию можно здесь.
Компании нужен middle или senior, чтобы строить большой DWH, разрабатывать высоконагруженную систему и улучшать сервисы, отвечающие за работу подписки и ленты каналов. Соответственно, нужны знания Java 17, aka CS 101 и хоть какое-то взаимодействие с популярными NoSQL-решениями.
Немного контекста: команда инфраструктуры статистики создает сервисы, в задачи которых входят обработка и поставка всех клиентских событий и клиентской статистики; инфраструктура подготовки данных для аналитики и А/Б-тестирования.
Откликнуться на вакансию можно здесь.
👍6☃3🔥1
Погружение в паттерны проектирования (2021) PDF + Архив с примерами кода
Книга «Погружение в Паттерны Проектирования» описывает 22 классических паттерна проектирования, а также 8 принципов проектирования, на которых они основаны.
Каждая глава начинается с разбора определённой проблемы, возникающей при проектировании, и шаг за шагом подводит читателя к решению с помощью одного из паттернов.
Далее идёт детальный разбор структуры паттерна и его вариаций, а также пример реализации в коде.
Затем, читатель знакомится с кейсами использования паттерна и учится воспроизводить паттерн по шагам.
Заканчиваются главы обсуждением плюсов и минусов паттерна, а также обзором его связей с другими паттернами.
Книга «Погружение в Паттерны Проектирования» описывает 22 классических паттерна проектирования, а также 8 принципов проектирования, на которых они основаны.
Каждая глава начинается с разбора определённой проблемы, возникающей при проектировании, и шаг за шагом подводит читателя к решению с помощью одного из паттернов.
Далее идёт детальный разбор структуры паттерна и его вариаций, а также пример реализации в коде.
Затем, читатель знакомится с кейсами использования паттерна и учится воспроизводить паттерн по шагам.
Заканчиваются главы обсуждением плюсов и минусов паттерна, а также обзором его связей с другими паттернами.
👍24🎅1