Поправка: в вопросе имеется в виду byte[].
Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному Object.hashCode() на основании адреса массива). Так же у массивов не переопределен equals и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента.
Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному Object.hashCode() на основании адреса массива). Так же у массивов не переопределен equals и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента.
#вопросы_с_собеседований
Какие классы поддерживают чтение и запись потоков в компрессированном формате?
Какие классы поддерживают чтение и запись потоков в компрессированном формате?
☕️ DeflaterOutputStream - компрессия данных в формате deflate.
☕️ Deflater - компрессия данных в формат ZLIB.
☕️ ZipOutputStream - потомок DeflaterOutputStream для компрессии данных в формат Zip.
☕️ GZIPOutputStream - потомок DeflaterOutputStream для компрессии данных в формат GZIP.
☕️ InflaterInputStream - декомпрессия данных в формате deflate.
☕️ Inflater - декомпрессия данных в формате ZLIB.
☕️ ZipInputStream - потомок InflaterInputStream для декомпрессии данных в формате Zip.
☕️ GZIPInputStream - потомок InflaterInputStream для декомпрессии данных в формате GZIP.
☕️ Deflater - компрессия данных в формат ZLIB.
☕️ ZipOutputStream - потомок DeflaterOutputStream для компрессии данных в формат Zip.
☕️ GZIPOutputStream - потомок DeflaterOutputStream для компрессии данных в формат GZIP.
☕️ InflaterInputStream - декомпрессия данных в формате deflate.
☕️ Inflater - декомпрессия данных в формате ZLIB.
☕️ ZipInputStream - потомок InflaterInputStream для декомпрессии данных в формате Zip.
☕️ GZIPInputStream - потомок InflaterInputStream для декомпрессии данных в формате GZIP.
Стрим с Петром Зайцевым (CEO компании Percona) в группе Java Pro
- способы оптимизации SQL запросов в MySQL
- профессиональная оптимизация хранения данных в MySQL
- на что обратить внимание при проектировании и отладки сетевого взаимодействия с MySQL
Присоединиться
- способы оптимизации SQL запросов в MySQL
- профессиональная оптимизация хранения данных в MySQL
- на что обратить внимание при проектировании и отладки сетевого взаимодействия с MySQL
Присоединиться
Java Cookbook (2020)
Автор: Ian F. Darwin
Количество страниц: 638
Java продолжает расти и развиваться, и эта книга тоже обновляется. С помощью данного руководства вы ознакомитесь с сотнями практических рецептов по широкому кругу тем Java. Вы узнаете полезные техники практически для всего - от обработки строк и функционального программирования до сетевого взаимодействия. Это обновленное издание охватывает изменения, внесенные в Java 12, 13 и 14.
Скачать книгу
Автор: Ian F. Darwin
Количество страниц: 638
Java продолжает расти и развиваться, и эта книга тоже обновляется. С помощью данного руководства вы ознакомитесь с сотнями практических рецептов по широкому кругу тем Java. Вы узнаете полезные техники практически для всего - от обработки строк и функционального программирования до сетевого взаимодействия. Это обновленное издание охватывает изменения, внесенные в Java 12, 13 и 14.
Скачать книгу
Telegram
Книги для программистов (reserved)
Java Cookbook (2020)
Автор: Ian F. Darwin
Автор: Ian F. Darwin
#вопросы_с_собеседований
Можно ли использовать строки в конструкции switch?
Можно ли использовать строки в конструкции switch?
Мы снова проводим конкурс в VK на лучший мем для статьи с нашего сайта proglib.io. Правила остаются теми же:
1. Вы берете любую статью с сайта, не утратившую свою актуальность
2. Делаете для нее мем
3. Отправляете в предложенные новости ссылку и вашу картинку
4. Мы оформляем и публикуем
Количество мемов, которые может предложить один человек, не ограничено.
Автор картинки с публикацией с наибольшим охватом среди всех нам отправленных получит 15 тысяч рублей. Поехали: https://vk.com/proglib
Срок окончания конкурса — 2 октября 2020 года.
1. Вы берете любую статью с сайта, не утратившую свою актуальность
2. Делаете для нее мем
3. Отправляете в предложенные новости ссылку и вашу картинку
4. Мы оформляем и публикуем
Количество мемов, которые может предложить один человек, не ограничено.
Автор картинки с публикацией с наибольшим охватом среди всех нам отправленных получит 15 тысяч рублей. Поехали: https://vk.com/proglib
Срок окончания конкурса — 2 октября 2020 года.
Стань Java-разработчиком с JavaRush.
Хватит мечтать, пора учиться!
Тем более, когда обучение сделано в виде игры, от которой невозможно оторваться.
1200+ практических задач, автопроверка решений и онлайн-стажировка помогут тебе повысить свой левел от нуля до Junior-а.
Писать код ты будешь уже с первого урока.
Регистрируйся и воплощай мечту стать Java-программистом: http://bit.ly/javarush_javaproglib
Хватит мечтать, пора учиться!
Тем более, когда обучение сделано в виде игры, от которой невозможно оторваться.
1200+ практических задач, автопроверка решений и онлайн-стажировка помогут тебе повысить свой левел от нуля до Junior-а.
Писать код ты будешь уже с первого урока.
Регистрируйся и воплощай мечту стать Java-программистом: http://bit.ly/javarush_javaproglib
Да, начиная с Java 7 в операторе switch можно использовать строки, ранние версии Java не поддерживают этого. При этом:
☕️ участвующие строки чувствительны к регистру;
☕️ используется метод equals() для сравнения полученного значения со значениями case, поэтому во избежание NullPointerException стоит предусмотреть проверку на null.
☕️ согласно документации, Java 7 для строк в switch, компилятор Java формирует более эффективный байткод для строк в конструкции switch, чем для сцепленных условий if-else.
☕️ участвующие строки чувствительны к регистру;
☕️ используется метод equals() для сравнения полученного значения со значениями case, поэтому во избежание NullPointerException стоит предусмотреть проверку на null.
☕️ согласно документации, Java 7 для строк в switch, компилятор Java формирует более эффективный байткод для строк в конструкции switch, чем для сцепленных условий if-else.
☕ Программирование на Java с нуля: инструкция к профессии Java-разработчика
Java – это объектно-ориентированный язык программирования, созданный Sun Microsystems в 1995 г. По данным опросов Stack Overflow и TIOBE Index, Java находится в пятерке самых популярных и востребованных языков программирования, а по данным отраслевого аналитика IDC Аль Хильва язык используют 90% компаний списка Fortune 500.
https://proglib.io/sh/hulD3Z2FBM
Java – это объектно-ориентированный язык программирования, созданный Sun Microsystems в 1995 г. По данным опросов Stack Overflow и TIOBE Index, Java находится в пятерке самых популярных и востребованных языков программирования, а по данным отраслевого аналитика IDC Аль Хильва язык используют 90% компаний списка Fortune 500.
https://proglib.io/sh/hulD3Z2FBM
Media is too big
VIEW IN TELEGRAM
Оцифруй свой регион - участвуй в Онлайн-Хакатоне Цифрового Прорыва в Приволжском IT-хабе! 🚀
Регистрируйся по ссылке: https://proglib.io/w/b210e1d6
12-14 сентября участники будут решать на выбор один из 10 представленных кейсов от:
АО «Газпромбанк», ПАО «Россети», Почты России, ПАО «Ростелеком», АО «Газпром-медиа Холдинг», Госкорпорации «Росатом», Саратовского государственного технического университета им. Гагарина Ю.А., Министерства информационного развития и связи Пермского края, Министерства социально-демографической и семейной политики Самарской области, Самарского областного центра детско-юношеского технического творчества.
Призовой фонд хакатона составит 3.000.000 ₽! 🏆
Прояви себя в "цифре" - регистрируйся сейчас, собирай и стань частью цифрового будущего! 💫
Подробности: https://proglib.io/w/b210e1d6
Регистрируйся по ссылке: https://proglib.io/w/b210e1d6
12-14 сентября участники будут решать на выбор один из 10 представленных кейсов от:
АО «Газпромбанк», ПАО «Россети», Почты России, ПАО «Ростелеком», АО «Газпром-медиа Холдинг», Госкорпорации «Росатом», Саратовского государственного технического университета им. Гагарина Ю.А., Министерства информационного развития и связи Пермского края, Министерства социально-демографической и семейной политики Самарской области, Самарского областного центра детско-юношеского технического творчества.
Призовой фонд хакатона составит 3.000.000 ₽! 🏆
Прояви себя в "цифре" - регистрируйся сейчас, собирай и стань частью цифрового будущего! 💫
Подробности: https://proglib.io/w/b210e1d6
#вопросы_с_собеседований
Что означает URL encoding? Как это осуществить в Java?
Что означает URL encoding? Как это осуществить в Java?
URL Encoding — процесс преобразования данных в форму CGI (Common Gateway Interface), не содержащую пробелов и нестандартных символов, которые заменяются в процессе кодирования на специальные escape-символы. В Java для кодирования строки используется метод java.net.URLEncoder.encode(String str, String unicode). Обратная операция декодирования возможна через использование метода java.net.URLDecoder.decode(String str, String unicode).
Курс по игровому программированию на C++ в Unreal
За 5 месяцев вы научитесь писать код, который позволит персонажам двигаться, перемещаться, стрелять и взаимодействовать с окружающим миром, а также получите навыки, необходимые для работы геймплей-программистом.
Специально для подписчиков подготовили промокод "PROG"
Он даст скидку 10% на покупку курса.
Читайте подробнее и начинайте изучать программирование для Action игр уже сейчас: https://bit.ly/3aZqZGf
За 5 месяцев вы научитесь писать код, который позволит персонажам двигаться, перемещаться, стрелять и взаимодействовать с окружающим миром, а также получите навыки, необходимые для работы геймплей-программистом.
Специально для подписчиков подготовили промокод "PROG"
Он даст скидку 10% на покупку курса.
Читайте подробнее и начинайте изучать программирование для Action игр уже сейчас: https://bit.ly/3aZqZGf
#вопросы_с_собеседований
Назовите основные свойства транзакции.
Назовите основные свойства транзакции.
Атомарность (atomicity) гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.
Согласованность (consistency). Транзакция, достигающая своего нормального завершения и, тем самым, фиксирующая свои результаты, сохраняет согласованность базы данных.
Изолированность (isolation). Во время выполнения транзакции параллельные транзакции не должны оказывать влияние на её результат.
Долговечность (durability). Независимо от проблем на нижних уровнях (к примеру, обесточивание системы или сбои в оборудовании) изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.
Согласованность (consistency). Транзакция, достигающая своего нормального завершения и, тем самым, фиксирующая свои результаты, сохраняет согласованность базы данных.
Изолированность (isolation). Во время выполнения транзакции параллельные транзакции не должны оказывать влияние на её результат.
Долговечность (durability). Независимо от проблем на нижних уровнях (к примеру, обесточивание системы или сбои в оборудовании) изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.
Верно ли утверждение, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных в куче?
Не совсем. Примитивное поле экземпляра класса хранится не в стеке, а в куче. Любой объект (всё, что явно или неявно создаётся при помощи оператора new) хранится в куче.
#вопросы_с_собеседований
Как поведёт себя коллекция, если вызвать iterator.remove()?
Как поведёт себя коллекция, если вызвать iterator.remove()?
Forwarded from Java jobs — вакансии для java-разработчиков
#platinum #вакансия #удаленка #java
Java developer в Platinum Software Development (уровень middle и выше)
О НАС:
https://platinum.fund
Строим финансовый продукт в сфере криптовалют, задач много и нам давно пора расширяться
ЗАДАЧИ:
• Планирование архитектуры приложения
• Разработка некоторых модулей приложения, интеграция со сторонними модулями и внешними сервисами
• Помощь в декомпозиции на таски для команды бэк-энд разработчиков
ТРЕБОВАНИЯ:
• Опыт разработки на Java от трех лет
• Java 8+, Spring Framework(Boot, Data), Hibernate, JUnit, Liquibase, PostgreSQL, Docker, Git
• Наличие репозитория с кодом, который можно посмотреть
• Опыт работы с RabbitMQ будет большим плюсом
• Большим плюсом будет опыт в финансовой сфере
УСЛОВИЯ:
• Полностью удаленный формат работы
• 6 дней в неделю, без трекинга времени
• ЗП 2500-3500$
КОНТАКТЫ:
@Helen_Blb
➡️ Подробности - https://proglib.io/vacancies/java-developer-v-platinum-software-development-uroven-middle-i-vyshe-platinum-software-development-2020-09-07
Java developer в Platinum Software Development (уровень middle и выше)
О НАС:
https://platinum.fund
Строим финансовый продукт в сфере криптовалют, задач много и нам давно пора расширяться
ЗАДАЧИ:
• Планирование архитектуры приложения
• Разработка некоторых модулей приложения, интеграция со сторонними модулями и внешними сервисами
• Помощь в декомпозиции на таски для команды бэк-энд разработчиков
ТРЕБОВАНИЯ:
• Опыт разработки на Java от трех лет
• Java 8+, Spring Framework(Boot, Data), Hibernate, JUnit, Liquibase, PostgreSQL, Docker, Git
• Наличие репозитория с кодом, который можно посмотреть
• Опыт работы с RabbitMQ будет большим плюсом
• Большим плюсом будет опыт в финансовой сфере
УСЛОВИЯ:
• Полностью удаленный формат работы
• 6 дней в неделю, без трекинга времени
• ЗП 2500-3500$
КОНТАКТЫ:
@Helen_Blb
➡️ Подробности - https://proglib.io/vacancies/java-developer-v-platinum-software-development-uroven-middle-i-vyshe-platinum-software-development-2020-09-07