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
Почему нельзя использовать byte[] в качестве ключа в HashMap?
Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному
Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному
Object.hashCode() на основании адреса массива). Так же у массивов не переопределен equals и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента.👍38🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Системы счисления. Алгоритм перевода в произвольную систему счисления.
В данном видео рассматривается устройство позиционных систем счисления. Реализуется на языке программирования Java алгоритм, позволяющий генерировать представление целого числа в любой произвольной системе счисления.
Стать спонсором канала:
https://www.…
Стать спонсором канала:
https://www.…
👍11
JAVA FROM EPAM (2020)
Пособие предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и ХМL. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
Пособие предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и ХМL. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
👍13🔥3
Какова роль equals() и hashCode() в HashMap?
hashCode позволяет определить корзину для поиска элемента, а equals используется для сравнения ключей элементов в списке корзины и искомого ключа.👍40
Алгоритмы. Руководство по разработке. 3-е изд (2022) PDF
Книга является наиболее полным руководством по разработке эффективных алгоритмов. Первая часть книги содержит практические рекомендации по разработке алгоритмов: приводятся основные понятия, дается анализ алгоритмов, рассматриваются типы структур данных, основные алгоритмы сортировки, операции обхода графов и алгоритмы для работы со взвешенными графами, примеры использования комбинаторного поиска, эвристических методов и динамического программирования. Вторая часть книги содержит обширный список литературы и каталог из 75 наиболее распространенных алгоритмических задач, для которых перечислены существующие программные реализации.
В третьем издании расширен набор рандомизированных алгоритмов, алгоритмов хеширования, аппроксимации и квантовых вычислений. Добавлено более 100 новых задач, даны ссылки к реализациям на C, C++ и Java.
Книга является наиболее полным руководством по разработке эффективных алгоритмов. Первая часть книги содержит практические рекомендации по разработке алгоритмов: приводятся основные понятия, дается анализ алгоритмов, рассматриваются типы структур данных, основные алгоритмы сортировки, операции обхода графов и алгоритмы для работы со взвешенными графами, примеры использования комбинаторного поиска, эвристических методов и динамического программирования. Вторая часть книги содержит обширный список литературы и каталог из 75 наиболее распространенных алгоритмических задач, для которых перечислены существующие программные реализации.
В третьем издании расширен набор рандомизированных алгоритмов, алгоритмов хеширования, аппроксимации и квантовых вычислений. Добавлено более 100 новых задач, даны ссылки к реализациям на C, C++ и Java.
👍26❤4🔥3
Как сделать ссылки на методы дружелюбными для отладки
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
Читать статью
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
Читать статью
Telegraph
Как сделать ссылки на методы дружелюбными для отладки
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя…
👍15🔥2🍾1🎄1