Size: a a a

Библиотека джависта

2020 July 02
Библиотека джависта
#вопросы_с_собеседований
В каком случае может быть потерян элемент в HashMap?
источник
2020 July 03
Библиотека джависта
Допустим, в качестве ключа используется не примитив, а объект с несколькими полями. После добавления элемента в HashMap у объекта, который выступает в качестве ключа, изменяют одно поле, которое участвует в вычислении хэш-кода. В результате при попытке найти данный элемент по исходному ключу, будет происходить обращение к правильной корзине, а вот equals уже не найдет указанный ключ в списке элементов. Тем не менее, даже если equals реализован таким образом, что изменение данного поля объекта не влияет на результат, то после увеличения размера корзин и пересчета хэш-кодов элементов, указанный элемент, с измененным значением поля, с большой долей вероятности попадет в совершенно другую корзину и тогда уже потеряется совсем.
источник
Библиотека джависта
#вопросы_с_собеседований
В чем проблема сериализации Singleton?
источник
2020 July 04
Библиотека джависта
Выбираете простое в освоении и в то же время востребованное IT-направление? Участвуйте в бесплатном интенсиве от Skillbox 6–8 июля, чтобы познакомиться с языком Java и написать на нём свой первый кейс — программу, отслеживающую активность рабочего стола.

Регистрация по ссылке: 👉 https://clc.to/qdNQvg.

⚡️ За три дня вы узнаете, как на практике устроена работа Java-разработчика, какие умения составляют 90% успеха. И под руководством опытного специалиста создадите собственную программу на востребованном языке.


💼 В итоге у вас будет готовый проект для портфолио, полностью настроенная среда для программирования, подключённые библиотеки, наработки кода, а также неограниченный доступ к записям занятий.
источник
Библиотека джависта
Проблема в том, что после десериализации мы получим другой объект. Таким образом, сериализация дает возможность создать Singleton еще раз, что недопустимо. Существует два способа избежать этого:

☕️ явный запрет сериализации;
☕️ определение метода с сигнатурой (default/public/private/protected/) Object readResolve() throws ObjectStreamException, назначением которого станет возврат замещающего объекта вместо объекта, на котором он вызван.
источник
Библиотека джависта
#вопросы_с_собеседований
В чем разница между interrupted() и isInterrupted()?
источник
2020 July 05
Библиотека джависта
Механизм прерывания работы потока в Java реализован с использованием внутреннего флага, известного как статус прерывания. Прерывание потока вызовом Thread.interrupt() устанавливает этот флаг. Методы Thread.interrupted() и isInterrupted() позволяют проверить, является ли поток прерванным.

Когда прерванный поток проверяет статус прерывания, вызывая статический метод Thread.interrupted(), статус прерывания сбрасывается.

Нестатический метод isInterrupted() используется одним потоком для проверки статуса прерывания у другого потока, не изменяя флаг прерывания.
источник
Библиотека джависта
#вопросы_с_собеседований
Сколько необходимо дополнительной памяти при вызове ArrayList.add()?
источник
2020 July 06
Библиотека джависта
🕵️ Где программисту искать удаленную работу?

Рассмотрели 12 международных и российских площадок для поиска удалённой работы: ссылки, различия в механике поиска, плюсы и минусы.

https://proglib.io/sh/30rRSxjemG
источник
Библиотека джависта
Если в массиве достаточно места для размещения нового элемента, то дополнительной памяти не требуется. Иначе происходит создание нового массива размером в 1,5 раза превышающим существующий (это верно для JDK выше 1.7, в более ранних версиях размер увеличения иной).
источник
2020 July 07
Библиотека джависта
Теперь bug hunter'ы могут помочь сервису, которым пользуются они сами, друзья, близкие и мама с бабушкой — Ozon первым среди российских e-commerce компаний запустил собственную bug bounty программу.

За найденные на сайте уязвимости можно получить до 120 000 ₽.  Отправлять репорты можно на HackerOne: hackerone.com/ozon. Удачной охоты!
источник
Библиотека джависта
#вопросы_с_собеседований
Верно ли утверждение, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных в куче?
источник
2020 July 08
Библиотека джависта
Не совсем. Примитивное поле экземпляра класса хранится не в стеке, а в куче. Любой объект (всё, что явно или неявно создаётся при помощи оператора new) хранится в куче.
источник
Библиотека джависта
#вопросы_с_собеседований
В чем разница между Collection и Stream?
источник
2020 July 09
Библиотека джависта
Коллекции позволяют работать с элементами по отдельности, тогда как стримы так делать не позволяют, но вместо этого предоставляют возможность выполнять функции над данными как над одним целым.

Также стоит отметить важность самой концепции сущностей: Collection - это прежде всего воплощение Структуры Данных. Например, Set не просто хранит в себе элементы, он реализует идею множества с уникальными элементами, тогда как Stream, это прежде всего абстракция необходимая для реализации конвеера вычислений, собственно поэтому, результатом работы конвеера являются те или иные Структуры Данных или же результаты проверок/поиска и т.п.
источник
Библиотека джависта
Starting Out with Java (2019)
Автор: Tony Gaddis

Данная книга представляет собой пошаговое введение в Java. Автор описывает процедурное программирование - структуры и методы - прежде чем начинать объектно-ориентированную парадигму, чтобы гарантировать, что студенты понимают фундаментальные концепции программирования и решения задач. Каждая глава содержит четкие и легко читаемые примеры кода, краткие и практические примеры из реальной жизни и множество упражнений.

Скачать книгу
источник
2020 July 10
Библиотека джависта
Programming Kotlin (2019)
Автор: Venkat Subramaniam

Программисты не просто так используют Kotlin, им это нравится. Даже Google признал его первоклассным языком для разработки под Android. С Kotlin вы можете смешивать императивный, функциональный и объектно-ориентированный стили программирования и получать выгоду от подхода, наиболее подходящего для рассматриваемой задачи. Работая с данной книгой, вы научитесь использовать многие возможности этого очень лаконичного, элегантного и выразительного языка с помощью простых для понимания примеров. Вы научитесь писать простые в обслуживании, высокопроизводительные приложения JVM и Android, работать с асинхронностью программ и многому другому.

Скачать книгу
источник
Библиотека джависта
#вопросы_с_собеседований
Для чего используются ключевые слова volatile, synchronized, transient, native?
источник
2020 July 11
Библиотека джависта
volatile - этот модификатор вынуждает потоки отключить оптимизацию доступа и использовать единственный экземпляр переменной. Если переменная примитивного типа – этого будет достаточно для обеспечения потокобезопасности. Если же переменная является ссылкой на объект – синхронизировано будет исключительно значение этой ссылки. Все же данные, содержащиеся в объекте, синхронизированы не будут!

synchronized - это зарезервированное слово позволяет добиваться синхронизации в помеченных им методах или блоках кода.

Ключевые слова transient и native к многопоточности никакого отношения не имеют, первое используется для указания полей класса, которые не нужно сериализовать, а второе - сигнализирует о том, что метод реализован в платформо-зависимом коде.
источник
2020 July 12
Библиотека джависта
#вопросы_с_собеседований
Что такое Semaphore?
источник