Java библиотека
31.6K subscribers
2.32K photos
78 videos
8 files
2.05K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
Какое начальное количество корзин в HashMap?

В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
👍32
Возможна ли ситуация, когда HashMap выродится в список даже с ключами имеющими разные hashCode()?

Это возможно в случае, если метод, определяющий номер корзины будет возвращать одинаковые значения.
👍211
Вы когда-нибудь искали подробное введение в Maven, которое было бы веселым и интересным одновременно? Тогда вы его нашли.

В этом видео вы узнаете, как использовать Maven как профессионал: установка, использование Maven вместе с IDE, основы Maven и многое другое.
👍171🔥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.
👍13
👩‍💻 Java. Fluent Interface.

В этом видео разговор идет о таком приеме в разработке, как Fluent Interface. Это когда вызовы методов объекта объединяются в цепочку. На примерах показываются варианты использования данного приема, и как его написать на языке программирования Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121🔥1
Предметно-ориентированное проектирование в Enterprise Java (2020) PDF

В книге подробно рассматриваются реализации шаблонов предметно-ориентированного проектирования с применением различных инструментальных средств и рабочих программных сред из Enterprise Java Space. При таком подходе читатель получает завершенную картину и возможность практического применения любого из этих средств в процессе предметно-ориентированного проектирования.
В начальных главах описывается эталонная реализация проекта Cargo Tracker - создание монолитного приложения с использованием платформы Jakarta EE. Затем рассматривается полный процесс преобразования монолитного приложения в архитектуру, основанную на микросервисах. В заключительных главах демонстрируется создание версии приложения с использованием шаблонов CQRS и Event Sourcing (ES); основной рабочей средой является Axon Framework.
👍14🔥1
👩‍💻 JAVA SPRING JDBC: CRUD БЕЗ ORM

Не во всех случаях стоит использовать ORM. Если вам нужен полный контроль или вы используете простые сущности, то возможно вам стоит присмотреться к Spring Jdbc.

Подготовил в этом
видео материал с минимальным количеством кода и всяких настроек, которыми кишат остальные видеоуроки.
Раскрываю, почему лучше использовать NamedParameterJdbcTemplate, а не JdbcTemplate.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
👩‍💻 Дзен ищет Java-разработчика в команду инфраструктуры статистики

Компании нужен middle или senior, чтобы строить большой DWH, разрабатывать высоконагруженную систему и улучшать сервисы, отвечающие за работу подписки и ленты каналов. Соответственно, нужны знания Java 17, aka CS 101 и хоть какое-то взаимодействие с популярными NoSQL-решениями.

Немного контекста: команда инфраструктуры статистики создает сервисы, в задачи которых входят обработка и поставка всех клиентских событий и клиентской статистики; инфраструктура подготовки данных для аналитики и А/Б-тестирования.

Откликнуться на вакансию можно здесь.
👍63🔥1
Погружение в паттерны проектирования (2021) PDF + Архив с примерами кода

Книга «Погружение в Паттерны Проектирования» описывает 22 классических паттерна проектирования, а также 8 принципов проектирования, на которых они основаны.

Каждая глава начинается с разбора определённой проблемы, возникающей при проектировании, и шаг за шагом подводит читателя к решению с помощью одного из паттернов.
Далее идёт детальный разбор структуры паттерна и его вариаций, а также пример реализации в коде.
Затем, читатель знакомится с кейсами использования паттерна и учится воспроизводить паттерн по шагам.
Заканчиваются главы обсуждением плюсов и минусов паттерна, а также обзором его связей с другими паттернами.
👍24🎅1
Почему нельзя использовать byte[] в качестве ключа в HashMap?

Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному Object.hashCode() на основании адреса массива). Так же у массивов не переопределен equals и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента.
👍38🔥2
👩‍💻 Java. Системы счисления. Алгоритм перевода в произвольную систему счисления.

В данном видео рассматривается устройство позиционных систем счисления. Реализуется на языке программирования Java алгоритм, позволяющий генерировать представление целого числа в любой произвольной системе счисления.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
JAVA FROM EPAM (2020)

Пособие предназначено для программистов, начинающих и продолжающих изучение технологий 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.
👍264🔥3
Как сделать ссылки на методы дружелюбными для отладки

В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.

Читать статью
👍15🔥2🍾1🎄1
Guide to Java: A Concise Introduction to Programming (2nd Edition) (2023) True PDF

This textbook presents a focused and accessible primer on the fundamentals of Java programming, with extensive use of illustrative examples and hands-on exercises.

Addressing the need to acquire a good working model of objects in order to avoid possible misconceptions, the text introduces the core concepts of object-oriented programming at any stage, supported by the use of contour diagrams. Each chapter has one or more complete programs to illustrate the various ideas presented, and to help readers learn how to write programs on their own. Chapter summaries and practical exercises also are included to help the reader to review their progress and practice their skills.

This substantially updated second edition has been expanded with additional exercises, and includes new material on bit manipulation and parallel processing.
👍6🔥2
Какое худшее время работы метода get(key) для ключа, который есть в HashMap?

O(N). Худший случай - это поиск ключа в HashMap, вырожденного в список по причине совпадения ключей по hashCode() и для выяснения хранится ли элемент с определённым ключом может потребоваться перебор всего списка.
👍19🔥2💯2
Асинхронность в Java

Асинхронное программирование — обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения.

Мне — старшему инженеру-программисту — стало любопытно, как возможно делать несколько вещей одновременно, и задаюсь этим вопросом наверняка не только я. Каждый стремится быть более продуктивным и хочет того же от своих приложений.

Переключив внимание на асинхронность в Java, мы откроем для себя множество способов ее реализации и различные варианты использования.

Читать статью
👍21🔥3❤‍🔥2
Design Patterns with Java: An Introduction (2023) True PDF, ePUB

A practical description of the software design patterns as they are mentioned in the 1994 book "Design Patterns - Elements of Reusable ObjectOriented Software" by the author group Gamma, Helm, Johnson and Vlissides (also called "Gang of Four", GoF for short). All patterns are explained in detail by means of examples and also critically appreciated. Furthermore, design principles of object-oriented programming are described and considered. All examples are commented in detail in the source code and are executable under Java 16. In part, newer features of Java up to and including version 16 are also explained and used.

Patterns describe language-independent abstract solution approaches. This means that each generation of developers is challenged to develop their own implementations. Gamma et al. wrote their exemplary implementations in Smalltalk, among other languages. Implementations in Java may look quite different.
👍12🔥1