Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?
Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для
Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для
HashMap это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.👍10
Каким образом реализованы методы hashCode() и equals() в классе Object?
Реализация метода
Реализация метода
Object.equals() сводится к проверке на равенство двух ссылок: public boolean equals(Object obj) {
return (this == obj);
}
Реализация метода Object.hashCode() описана как native, т.е. определенной не с помощью Java кода и обычно возвращает адрес объекта в памяти:public native int hashCode();👍14🔥2🎅2☃1
Для чего нужен метод hashCode()?
Метод
• если хэш коды разные, то и объекты гарантированно разные;
• если хэш коды равны, то объекты могут не обязательно равны.
Метод
hashCode() необходим для вычисления хэш кода переданного в качестве входного параметра объекта. В Java это целое число, в более широком смысле - битовая строка фиксированной длины, полученная из массива произвольной длины. Этот метод реализован таким образом, что для одного и того же входного объекта, хэш код всегда будет одинаковым. Следует понимать, что в Java множество возможных хэш кодов ограничено типом int, а множество объектов ничем не ограничено. Из-за этого, вполне возможна ситуация, что хэш коды разных объектов могут совпасть:• если хэш коды разные, то и объекты гарантированно разные;
• если хэш коды равны, то объекты могут не обязательно равны.
👍16🔥3
BitSail — это распределенный высокопроизводительный механизм интеграции данных, который поддерживает пакетные, потоковые и инкрементальные сценарии.
Language: Java
💥Stars: 1393
📝Forks: 271
https://github.com/bytedance/bitsail
Language: Java
💥Stars: 1393
📝Forks: 271
https://github.com/bytedance/bitsail
GitHub
GitHub - bytedance/bitsail: BitSail is a distributed high-performance data integration engine which supports batch, streaming and…
BitSail is a distributed high-performance data integration engine which supports batch, streaming and incremental scenarios. BitSail is widely used to synchronize hundreds of trillions of data ever...
👍4❤1
Этот вебинар посвящен введению в один из самых лучших Java фреймворков – Spring.
Java фреймворк Spring покрывает очень много различных областей разработки, от консольных приложений до сложного batch-процессинга. Но все его модули и функциональные возможности основываются на понимании Spring Core, который мы и будем тщательно разбирать и изучать на нашем вебинаре.
Отдельное внимание мы уделим таким популярным модулям как Spring MVC, Spring Data, Spring REST.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Spring – лучший Java фреймворк для создания веб-приложений
Промокод на скидку 15% на все курсы ITVDN- H94BCAB
Больше уроков по Spring - https://itvdn.com/ru/catalog?search=spring?utm_source=yb_webinar_spring2020
Этот вебинар посвящен введению в один из самых лучших Java фреймворков – Spring.
Java фреймворк Spring…
Больше уроков по Spring - https://itvdn.com/ru/catalog?search=spring?utm_source=yb_webinar_spring2020
Этот вебинар посвящен введению в один из самых лучших Java фреймворков – Spring.
Java фреймворк Spring…
👍16❤3
Что такое «коллекция»?
«Коллекция» - это структура данных, набор каких-либо объектов. Данными (объектами в наборе) могут быть числа, строки, объекты пользовательских классов и т.п.
«Коллекция» - это структура данных, набор каких-либо объектов. Данными (объектами в наборе) могут быть числа, строки, объекты пользовательских классов и т.п.
👍11❤4❤🔥1🔥1
В видео собраны самые интересные вопросы с собеседований на Java-разработчика. В видео две части.
Приятного просмотра!
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Собеседование Java Spring - Разбор вопросов с собеседований на Java Developer
Собрали самые интересные вопросы с собеседований на Java-разработчика. В видео две части. В первой рассказываем про Java: Коллекции, Hash Code & Equals Contract, Functional interfaces, Stream API, Garbage collector, устройство памяти, heap, concurrency.
Во…
Во…
👍15❤4🎅2
Тимлид в команду разработки на Java
Гибридный формат в городах РФ, Сербии, Казахстана, Армении, Беларуси.
Инфраструктура Яндекса — это набор сервисных провайдеров, на основе которых строится runtime облака, хранилища, системы офлайн-вычислений и другие продукты компании. Все провайдеры объединены проектной, ресурсной и ролевой моделью — это позволяет быстрее запускать новые продукты и гарантировать стабильность работы уже существующих. Наша команда разрабатывает базовые сервисы, которые реализуют эти модели и связывают всю инфраструктуру воедино, позволяют группировать ресурсы по проектам, предоставлять к ним доступы.
Ищем опытного тимлида в команду разработки на Java, который поможет спроектировать и реализовать новые компоненты системы, будет руководить командой, нанимать новых инженеров и развивать их.
Наш стек: Java 11, Spring Boot, Reactor, HTTP и gRPC API, Kotlin, PostgreSQL.
Мы ждем, что вы:
- разрабатывали на Java больше трех лет;
- пишете эффективный и понятный код;
- управляли командой разработки; нанимали людей и знаете, как правильно развивать разработчиков;
- можете вести за собой младших участников команды, делиться с ними знаниями и опытом;
- знаете, как устроены веб-сервисы;
- работали с реляционными и нереляционными базами данных и понимаете их устройство, *nix-подобными ОС.
- знаете популярные Java-библиотеки и фреймворки (Spring Boot, jUnit, Netty, Reactor);
Условия:
- сильная команда, с которой можно расти;
- зарплата на уровне рынка и выше;
- премии каждые полгода для всех, кто успешно прошёл ревью;
- расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей;
- гибкий график работы.
Откликнуться: https://goo.su/hlTfAB или в ТГ: @Karm_Anna
Гибридный формат в городах РФ, Сербии, Казахстана, Армении, Беларуси.
Инфраструктура Яндекса — это набор сервисных провайдеров, на основе которых строится runtime облака, хранилища, системы офлайн-вычислений и другие продукты компании. Все провайдеры объединены проектной, ресурсной и ролевой моделью — это позволяет быстрее запускать новые продукты и гарантировать стабильность работы уже существующих. Наша команда разрабатывает базовые сервисы, которые реализуют эти модели и связывают всю инфраструктуру воедино, позволяют группировать ресурсы по проектам, предоставлять к ним доступы.
Ищем опытного тимлида в команду разработки на Java, который поможет спроектировать и реализовать новые компоненты системы, будет руководить командой, нанимать новых инженеров и развивать их.
Наш стек: Java 11, Spring Boot, Reactor, HTTP и gRPC API, Kotlin, PostgreSQL.
Мы ждем, что вы:
- разрабатывали на Java больше трех лет;
- пишете эффективный и понятный код;
- управляли командой разработки; нанимали людей и знаете, как правильно развивать разработчиков;
- можете вести за собой младших участников команды, делиться с ними знаниями и опытом;
- знаете, как устроены веб-сервисы;
- работали с реляционными и нереляционными базами данных и понимаете их устройство, *nix-подобными ОС.
- знаете популярные Java-библиотеки и фреймворки (Spring Boot, jUnit, Netty, Reactor);
Условия:
- сильная команда, с которой можно расти;
- зарплата на уровне рынка и выше;
- премии каждые полгода для всех, кто успешно прошёл ревью;
- расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей;
- гибкий график работы.
Откликнуться: https://goo.su/hlTfAB или в ТГ: @Karm_Anna
❤6👍6
Почему Map — это не Collection, в то время как List и Set являются Collection?
Collection представляет собой совокупность некоторых элементов. Map - это совокупность пар «ключ-значение».
Collection представляет собой совокупность некоторых элементов. Map - это совокупность пар «ключ-значение».
👍13❤7☃1
Локация следующего Tech talk by Sber — Новосибирск! 📍
Да-да, уже 27 июля IT-специалисты Новосибирска получат классную возможность узнать больше о том, как реализуются задачи в Сбере, пообщаться с топовыми экспертами и завести интересные знакомства.
В программе митапа — доклады только на актуальные темы:
✔️ Дмитрий Дрожжин расскажет о том, зачем Сбер изобрел свой язык программирования и как его используют в проектах.
✔️ Марат Юлдашев раскроет все секреты развертывания приложений на стенды с помощью ARGOCD.
✔️ А Владимир Медин поделится историей тернистого пути Jenkins в Enterprise и расскажет, как специалистам Сбера удалось найти решение даже при пиковой нагрузке.
В перерывах вас ждет неформальное общение и вкусный кейтеринг. Регистрируйтесь по ссылке — встречаемся 27 июля в 18:00 по адресу: Food Factory, ул. Коммунистическая, 14 👌
Да-да, уже 27 июля IT-специалисты Новосибирска получат классную возможность узнать больше о том, как реализуются задачи в Сбере, пообщаться с топовыми экспертами и завести интересные знакомства.
В программе митапа — доклады только на актуальные темы:
✔️ Дмитрий Дрожжин расскажет о том, зачем Сбер изобрел свой язык программирования и как его используют в проектах.
✔️ Марат Юлдашев раскроет все секреты развертывания приложений на стенды с помощью ARGOCD.
✔️ А Владимир Медин поделится историей тернистого пути Jenkins в Enterprise и расскажет, как специалистам Сбера удалось найти решение даже при пиковой нагрузке.
В перерывах вас ждет неформальное общение и вкусный кейтеринг. Регистрируйтесь по ссылке — встречаемся 27 июля в 18:00 по адресу: Food Factory, ул. Коммунистическая, 14 👌
👍6🔥2
В чем разница между классами java.util.Collection и java.util.Collections?
java.util.Collections - набор статических методов для работы с коллекциями.java.util.Collection - один из основных интерфейсов Java Collections Framework.👍17
В этом видео автор показывает, как создать приложение, похожее на Google Фото, с помощью Spring Boot. Кроме того вы узнаете много нового о Spring Dependency Injection и MVC frameworks, Validation and File Handling, Spring Data и базах данных, а также о том, как задеплоить свое приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Spring Boot Tutorial - Crash Course
Ever looked for a comprehensive intro to Spring Boot that is fun and entertaining at the same time? Then have a look at this brand-new episode of "Marco Codes": Spring Boot Tutorial [Crash Course].
In this video, we will build a tiny Google Photos-like clone…
In this video, we will build a tiny Google Photos-like clone…
👍7❤3🎉1
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Распараллеливаем вычисления на пуле потоков.
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Исходные коды:
https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/multithreading/parallel2
Поддержать канал на Boosty:
https://…
Исходные коды:
https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/multithreading/parallel2
Поддержать канал на Boosty:
https://…
👍17❤7
Что такое «fail-fast поведение»?
В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают
Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (
• при изменении коллекции счетчик модификаций так же изменяется;
• при создании итератора ему передается текущее значение счетчика;
• при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение.
fail-fast поведение означает, что при возникновении ошибки или состояния, которое может привести к ошибке, система немедленно прекращает дальнейшую работу и уведомляет об этом. Использование fail-fast подхода позволяет избежать недетерминированного поведения программы в течение времени.В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают
ConcurrentModificationException, если после его создания была произведена модификация коллекции, т.е. добавлен или удален элемент напрямую из коллекции, а не используя методы итератора.Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (
modification count):• при изменении коллекции счетчик модификаций так же изменяется;
• при создании итератора ему передается текущее значение счетчика;
• при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение.
👍18❤5
В данном видео рассмотрен пример создания веб-сервиса с использованием следующих технологий:
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Создание веб-сервиса с использованием Spring Boot 3 и AWS SQS
В данном видео рассмотрен пример создания веб-сервиса с использованием следующих технологий:
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Дружное сообщество:
h…
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Дружное сообщество:
h…
👍33❤6🔥1
Микросервисы. От архитектуры до релиза (2023) PDF
Микросервисная архитектура обеспечивает высокую скорость изменений и хорошую масштабируемость, а также позволяет создавать чистые эволюционирующие системы. Но реализовать свою первую микросервисную архитектуру непросто. Как сделать выбор из множества вариантов и обучить свою команду всем техническим деталям, чтобы максимально увеличить шансы на успех? В этой книге авторы, Ронни Митра и Иракли Надареишвили, предоставили пошаговое руководство для построения эффективной архитектуры микросервисов. Архитекторы и инженеры пройдут путь внедрения, основанный на методах и архитектурах, доказавших свою эффективность для микросервисных систем. Вы создадите операционную модель, проект микросервиса, инфраструктурную основу и два работающих микросервиса, а затем соедините эти компоненты в одну реализацию. Для любого, перед кем стоит задача создания микросервисов, руководство станет бесценным источником знаний.
Микросервисная архитектура обеспечивает высокую скорость изменений и хорошую масштабируемость, а также позволяет создавать чистые эволюционирующие системы. Но реализовать свою первую микросервисную архитектуру непросто. Как сделать выбор из множества вариантов и обучить свою команду всем техническим деталям, чтобы максимально увеличить шансы на успех? В этой книге авторы, Ронни Митра и Иракли Надареишвили, предоставили пошаговое руководство для построения эффективной архитектуры микросервисов. Архитекторы и инженеры пройдут путь внедрения, основанный на методах и архитектурах, доказавших свою эффективность для микросервисных систем. Вы создадите операционную модель, проект микросервиса, инфраструктурную основу и два работающих микросервиса, а затем соедините эти компоненты в одну реализацию. Для любого, перед кем стоит задача создания микросервисов, руководство станет бесценным источником знаний.
👍23❤6🔥3
Чем различаются Enumeration и Iterator.
Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:
• с помощью
• в
•
Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:
• с помощью
Enumeration нельзя добавлять/удалять элементы;• в
Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNext(), Enumeration.nextElement() соответствует Iterator.next() и т.д);•
Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.👍28❤5☃2
Как в JPA использовать AUTO_INCREMENT в MySQL?
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в структуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в структуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
YouTube
Как в JPA использовать AUTO_INCREMENT в MySQL?
#JPA #Spring #mysql
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в струтуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
Блог Vlad Mihalcea:
https://vladmihalcea.com/why-should…
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в струтуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
Блог Vlad Mihalcea:
https://vladmihalcea.com/why-should…
❤5👍5🔥2
Главное событие лета в Казани — IT Community Day Сбера 💻
Мы ждем вас 29 июля на первой большой ИТ конференции, которая пройдет в новом крутом технохабе Сбера и потрясающей крыше ИТ Парка им Б.Рамеева.
В программе:
👉 20 топовых спикеров Сбера на 3 параллельных сценах
👉 8 тематических стримов: от DS до DevOps, от Java до Soft Skills
👉 квиз и незабываемые активности на протяжении всего мероприятия
👉 нетворкинг, общение с крутыми спецами, HR Speed Dating
😎 After Party на крыше ИТ-парка
Встречаемся 29 июля в 12:00 по адресу: ул. Спартаковская, 2.
Обязательно зарегистрируйтесь по ссылке! 💚
Мы ждем вас 29 июля на первой большой ИТ конференции, которая пройдет в новом крутом технохабе Сбера и потрясающей крыше ИТ Парка им Б.Рамеева.
В программе:
👉 20 топовых спикеров Сбера на 3 параллельных сценах
👉 8 тематических стримов: от DS до DevOps, от Java до Soft Skills
👉 квиз и незабываемые активности на протяжении всего мероприятия
👉 нетворкинг, общение с крутыми спецами, HR Speed Dating
😎 After Party на крыше ИТ-парка
Встречаемся 29 июля в 12:00 по адресу: ул. Спартаковская, 2.
Обязательно зарегистрируйтесь по ссылке! 💚
👍10❤6🔥2
GraphQL with Java and Spring (2023) True PDF, ePUB
Learn first-hand from the founder of GraphQL Java and co-author of Spring for GraphQL how to build GraphQL services in Java.
This book is for anyone who wants to build a production GraphQL service with Java. By the end of this book, you will be confident building your own production GraphQL service with Spring for GraphQL, the official Spring integration built on top of the GraphQL Java engine. Spring for GraphQL makes it easier than ever to build a GraphQL service by eliminating boilerplate code and seamlessly integrating with the Spring ecosystem.
GraphQL Java is the dominant Java implementation of GraphQL, powering services at Twitter, AirBnB, Netflix, Atlassian, and many other companies. By the end of this book, you’ll be leveraging the same engine with Spring for GraphQL.
In this book, you’ll learn key GraphQL concepts, paired with practical advice from our experiences running production GraphQL services at scale.
Learn first-hand from the founder of GraphQL Java and co-author of Spring for GraphQL how to build GraphQL services in Java.
This book is for anyone who wants to build a production GraphQL service with Java. By the end of this book, you will be confident building your own production GraphQL service with Spring for GraphQL, the official Spring integration built on top of the GraphQL Java engine. Spring for GraphQL makes it easier than ever to build a GraphQL service by eliminating boilerplate code and seamlessly integrating with the Spring ecosystem.
GraphQL Java is the dominant Java implementation of GraphQL, powering services at Twitter, AirBnB, Netflix, Atlassian, and many other companies. By the end of this book, you’ll be leveraging the same engine with Spring for GraphQL.
In this book, you’ll learn key GraphQL concepts, paired with practical advice from our experiences running production GraphQL services at scale.
👍14❤6