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

Java библиотека. Страница 7

12847 @javalib

Всё для Java разработчиков.

  • Java библиотека

    Что будет со ссылкой на метод, если заменить объект-владельца? Ответ на этот вопрос будет очевиден, если вы уверенно понимаете, что скрывается за терминами ссылки вообще и ссылки на метод. Для нестатических методов работает позднее связывание. По этой причине, когда мы обращаемся к такому методу по ссылке, то получаем метод экземпляра, а не типа переменной. На примере с изображения ниже метод класса A не будет затронут. Факт позднего связывания в этом вопросе может ввести в заблуждение. Связывание случается в момент обращения, а не вызова. В результате в переменной хранится неизменяемая копия ссылки на метод. Она ведет на метод объекта, а не хранящей его переменной. Поэтому переприсвоение переменной позже не окажет на ссылку никакого эффекта. Для достижения реального связывания в момент вызова в байткоде существует инструкция invokedynamic. Однако гораздо проще добиться того же результата, если использовать поведенческий паттерн ООП, например, посетителя.
  • Java библиотека

    Алгоритмы. Руководство по разработке. 3-е изд (2022) PDF Книга является наиболее полным руководством по разработке эффективных алгоритмов. Первая часть книги содержит практические рекомендации по разработке алгоритмов: приводятся основные понятия, дается анализ алгоритмов, рассматриваются типы структур данных, основные алгоритмы сортировки, операции обхода графов и алгоритмы для работы со взвешенными графами, примеры использования комбинаторного поиска, эвристических методов и динамического программирования. Вторая часть книги содержит обширный список литературы и каталог из 75 наиболее распространенных алгоритмических задач, для которых перечислены существующие программные реализации. В третьем издании расширен набор рандомизированных алгоритмов, алгоритмов хеширования, аппроксимации и квантовых вычислений. Добавлено более 100 новых задач, даны ссылки к реализациям на C, C++ и Java.
  • Java библиотека

    ✏️ 11 июля в 19:00 по МСК пройдёт бесплатный вебинар «Как пройти любое интервью на позицию Middle Java Developer» Что будет на трансляции: — Кто такие миддлы и куда они идут? — Требование и условия к разработчикам — Как продолжать самосовершенствоваться и искать новое? — Архитектура 99% собеседований Ведущий: Сергей Полухин, Senior Java Developer, старший разработчик и руководитель разработки на проектах Infobip, Сбера, Evento, суперкассы, основатель PDev Studio. 🚀 Бесплатная регистрация: https://clck.ru/34v2FS
  • Реклама

  • Java библиотека

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

    Java Illuminated: An Active Learning Approach, 6th Edition (2023) True ePUB Written for the one- to three-term introductory programming course, the sixth edition of Java Illuminated provides learners with an interactive, user-friendly approach to learning the Java programming language. Comprehensive but accessible, the text takes a progressive approach to object-oriented programming, allowing students to build on established skills to develop new and increasingly complex classes. Java Illuminated follows an activity-based active learning approach that ensures student engagement and interest. In addition, the text presents other topics of interest, including graphical user interfaces (GUI), data structures, file input and output, and graphical applications.
  • Java библиотека

    Как создавать гибкие тестовые планы для JMeter с использованием Groovy DSL? Ответ узнаете 11 июля в 20:00 на открытом уроке OTUS. Вебинар приурочен к старту онлайн-курса «Groovy Developer» и проведет его преподаватель Андрей Поляков, старший разработчик в Unlimint. 🔥На уроке мы рассмотрим: — Что такое DSL и как он применяется при создании тестовых планов. — Основные компоненты тестового плана JMeter. — Как формировать тестовый план с помощью Groovy DSL. Кому будет полезен этот урок? QA-инженерам, желающим настраивать гибкие тестовые планы в JMeter для нагрузочного тестирования. После вебинара полный курс можно приобрести в рассрочку. ⚡️Для участия зарегистрируйтесь: https://otus.pw/IEck/ Реклама. Информация о рекламодателе на сайте www.otus.ru.
  • Java библиотека

    В чем отличие между поверхностным и глубоким клонированием? Поверхностное копирование копирует настолько малую часть информации об объекте, насколько это возможно. По умолчанию, клонирование в Java является поверхностным, т.е. класс Object не знает о структуре класса, которого он копирует. Клонирование такого типа осуществляется JVM по следующим правилам: • Если класс имеет только члены примитивных типов, то будет создана совершенно новая копия объекта и возвращена ссылка на этот объект. • Если класс помимо членов примитивных типов содержит члены ссылочных типов, то тогда копируются ссылки на объекты этих классов. Следовательно, оба объекта будут иметь одинаковые ссылки. Глубокое копирование дублирует абсолютно всю информацию объекта: • Нет необходимости копировать отдельно примитивные данные; • Все члены ссылочного типа в оригинальном классе должны поддерживать клонирование. Для каждого такого члена при переопределении метода clone() должен вызываться super.clone(); • Если какой-либо член класса не поддерживает клонирование, то в методе клонирования необходимо создать новый экземпляр этого класса и скопировать каждый его член со всеми атрибутами в новый объект класса, по одному.
  • Java библиотека

    Добро пожаловать в мир облачных технологий! Хотите узнать, какие бывают облака? Тогда приходите 10 июля в 20:00 на открытый урок «Введение в облака, создание кластера в Mongo DB Atlas» в OTUS. Вебинар приурочен к старту онлайн-курса «Разработчик на Spring Framework» в OTUS и проведет его Дмитрий Коган, председатель совета предприятия DXC. Вместе мы исследуем различные типы облачных решений и их преимущества, а также настроим собственный кластер для своих проектов. Не упустите возможность получить ценные знания и познакомиться с экспертом. Продолжить обучение на курсе возможно в рассрочку. Для участия зарегистрируйтесь https://otus.pw/WpL4/
  • Java библиотека

    Head First. Паттерны проектирования. 2-е издание (2021) PDF Не имеет смысла каждый раз изобретать велосипед, лучше сразу освоить приемы проектирования, которые уже созданы людьми, сталкивавшимися с аналогичными задачами. В этой книге рассказано, какие паттерны действительно важны, когда и при каких условиях ими необходимо пользоваться, как применить их в ваших проектах и на каких принципах объектно-ориентированного проектирования они построены. Присоединяйтесь к сотням тысяч разработчиков, которые повысили свою квалификацию объектно-ориентированного проектирования благодаря книге «Head First. Паттерны проектирования».Если вы уже читали книги из серии Head First, то знаете, что вас ждет визуально насыщенный формат, разработанный с учетом особенностей работы мозга.
  • Java библиотека

    Как усилить свои фундаментальные навыки программирования? ⚡️ Пройди тест на знание основ алгоритмов и оцени свой уровень. ❗️ Тест подходит для любого языка программирования. Ответишь — пройдешь на продвинутый курс «Алгоритмы и структуры данных» в OTUS по специальной цене! 🎫 Курс можно приобрести в рассрочку 👉 Пройти тест на знание алгоритмов: https://otus.pw/NnAJ/ Хочешь протестировать учебный процесс заранее? Тогда приходи на открытый урок курса! 🗣 Регистрация на открытый урок 17 июля в 20:00 «Бор Ахо-Корасика». Регистрируйтесь сейчас - напомним в день вебинара! Нативная интеграция. Информация о продукте www.otus.ru
  • Java библиотека

    В чем различие между приватным конструктором и финальным классом? Ограничение области видимости конструктора до private не дает вызвать его из наследника, что приводит к невозможности наследоваться. Это свойство часто используется для утилитарных классов и синглтонов. Если применить порождающий паттерн, то можно вернуть возможность инстанцирования извне. Если добавить объявлению класса модификатор final, это также запретит от него наследоваться, уже без излишнего ограничения на использование конструктора снаружи. Это основное применение этих двух подходов. С точки зрения возможности наследования, ограничение через private конструктор более слабое. От такого класса, если он не финальный, можно наследовать внутренние и вложенные подклассы. Публичный вложенный класс может сработать как «паблик морозов» – дать внешним классам наследоваться через себя.
  • Java библиотека

    Получи преимущество на рынке, программируя Event Sourcing системы, особенно популярные на западе Целишься на позиции senior или architect? Хочешь знать больше своих коллег? Этот курс для тебя! ✅Разберешься в event-driven системах ✅Узнаешь Event sourcing, паттерн CQRS лучше, чем 99.9% разработчиков ✅Пройдешь путь создания Kafka, узнаешь best practice для RabbitMQ и как масштабировать свои системы ✅Твердо поймешь основы Domain-driven design, как его применять ✅Глубоко залезешь в паттерн Saga и реализуешь распределенную транзакцию ✅Будешь уверен в себе на system design интервью Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого. Твоими менторами станут ребята из Амазон, Револют, Яндекс или Озон. ❗️Старт курса - 10 июля, лекции и задания доступны уже сейчас!❗️ Переходи по ссылке и начинай учиться!
  • Java библиотека

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

    Pro Spring 6: An In-Depth Guide to the Spring Framework, 6th Edition (2023) PDF Master the Spring Framework, its fundamentals and core topics, and share the authors’ insights and real-world experiences. This book goes well beyond the basics: you'll learn how to leverage the latest Spring Framework 6 to build the various tiers and parts of today's modern, complex enterprise Java applications systems, top to bottom, including data access, SQL generation with jOOQ, persistence with Hibernate, transactions, set up security, classic web and presentation tiers and adding in some reactivity. Spring 6 will be based on the latest available Long Term Support (LTS) release, Java 17. So, you will be able to do the following in your Spring applications: use records, use new utility methods in String class; utilize Local-Variable Syntax for Lambda Parameters; Nested Based Access Control, and more.
  • Java библиотека

    Yandex Infrastructure Meetup 🗓 13 июля в Казани пройдёт офлайн-митап Yandex Infrastructure. На нем расскажем, как мы создаём и развиваем платформу для разработчиков Яндекса. Поговорим про устройство сети Yandex Cloud, про вычислительную платформу Яндекса Nirvana и технологию SRv6. Митап будет полезен backend-разработчикам, DevOps, SRE и сетевым инженерам, а также всем тем, кому интересны продукты open source. ➡️ Участие бесплатное. Регистрируйтесь по ссылке.
  • Реклама

  • Java библиотека

    👩‍💻 Как устроить Deadlock, а затем уйти от взаимной блокировки навсегда Что такое Deadlock или как намеренно создать взаимную блокировку потоков, а затем исправить алгоритм на языке программирования Java.
    Как устроить Deadlock, а затем уйти от взаимной блокировки навсегда

    00:00 | Вступление 00:30 | Алгоритм возникновения Deadlock 01:50 | Пример в коде 07:26 | Уходим от блокировки Что такое Deadlock или как намеренно создать взаимную блокировку потоков, а затем исправить алгоритм на языке программирования Java.

    YouTube
  • Java библиотека

    Нашли лучшие курсы по Java! Tutortop — образовательный маркетплейс №1, где представлено свыше 5000 курсов от более чем 300 школ и все их можно сравнить по рейтингу, цене и отзывам, а еще купить дешевле, чем напрямую 🔥 Ребята собрали для вас подборку из лучших курсов для Java-разработчиков по мнению их пользователей: — Курс «Профессия: Java-разработчик» от SkyPro. Рейтинг 4.9 из 5. — Курс «Java-разработчик с нуля» от Нетологии. Рейтинг 4.8 из 5. — Курс «Профессия: Java-разработчик с гарантией трудоустройства» от Product Star. Рейтинг 4.8 из 5. ⚡️Получите скидку до 10 000 ₽ на эти и десятки других курсов по Java на маркетплейсе tutortop!
  • Java библиотека

    Java: руководство для начинающих, 9-е издание (2023) PDF В этой книге, которая полностью обновлена с учетом Java Platform Standard Edition 17, начиная с самой первой главы, шаг за шагом показано, как приступить к программированию на языке Java. Книга, написанная ведущим специалистом по Java Гербертом Шилдтом, начинается с основ, таких как создание, компиляция и запуск программ на Java. Затем объясняются основные ключевые слова, синтаксис и команды языка Java.В книге раскрыты основы и кратко описаны расширенные функциональные средства, в числе которых многопоточное программирование, обобщения, лямбда-выражения и графический интерфейс Swing. Вдобавок приводится четкое объяснение перечислений, модулей и методов интерфейса. В этом руководстве предлагается эффективное сочетание теории и практики написания кода, которое позволит быстро приступить к разработке приложений на языке Java.