![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Народ поделитесь, пожалуйста, опытом. Назовите один-два лучших по вашему мнению вопроса, которые когда либо попадались вам на интервью (по java разумеется)? Вопросы, об устройстве hashmap'а, специфики имплементации класса String, чем отличается interface от class'а, базовое ООП -- всего этого не надо, будем считать это базовыми вопросами. В этом топике только интересные вопросы.
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
"Что вам больше всего не нравится в джава?"
|
|||
|
||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
на каком объекте происходит синхронизация статического метода
знаю ли я функциональное программирование (спросили на собеседование по java) -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
как серелиазовать несереализуемое
|
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Назовите механическое воплощение преобразования стека в очередь - ответ был автомат Калашникова
![]() |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
"Как производительность synchronized в хотспоте зависит от реализации hashCode в мониторе?"
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
И каков ответ? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Собственно блокировка на synchronized может реально принимать три формы: - Biased: На монитор записывается идентификатор потока один раз при помощи CAS и затем после выполнения критических секций только проверяется, что он еще там, если же нет (то бишь состязание за ресурс имеет место быть), то блокировка сваливается в lighweight или даже fat - Lightweight: CAS на входе и выходе для привязки монитора к потоку только на время критической секции - Fat: использование нативного мьютекса операционнной системы А вот чего я не знал, когда отвечал, так это того, куда для biased записывается идентификатор потока. Он записывается в заголовок объекта на место, в котором хранится нативный хэшкод. И если hashCode() не переопределен, то значение нативного хэшкода в заголовке перетирать нельзя и biased вообще не будет использоваться. Вопрос может быть не сильно полезен с точки зрения собеседования, но мне показался весьма занятным. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Biased Locking in HotSpot Т.е. даже имплементация hashCode не гарантирует что biased locking будет использоваться. Плюс статья довольно старая (2006 год), возможно в 7-ке уже это исправлено. А то получается, что синхронизация на Object будет медленней, например тот же Swing синхронизируется на Object. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
jk1 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Разве я говорил про гарантии его использования? ![]()
Swing - однопоточный toolkit. Большинство его компонент не thread safe и синхронизации никакой не имеют, то есть для Swing это обсуждение вряд ли актуально. Кроме того, у меня сильное подозрение, что его синхронизация писалась тогда, когда biased locking'а и в помине еще не было. Не стали же, например, JAX-RPC переписывать под стандартный JABX-маппинг, так и оставили свой велосипед. -------------------- Opinions are like assholes — everybody has one |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Посмотри как работает invalidate. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
jk1 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Посмотрел, оказывается тяжелое наследие awt никуда не делось. Был неправ, спасибо. Но вот чего я не понимаю, так это синхронизации на Object в этом коде. Равно как и вот этих фокусов:
-------------------- Opinions are like assholes — everybody has one |
||||
|
|||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Ну я так понимаю, что это просто выделенный класс/объект для синхронизации, который виден только внутри класса и нигде не референсится наружу. Этакая защита от глупых deadlock'ов (в особенности из-за синхронизировации на this) Это сообщение отредактировал(а) Royan - 27.6.2012, 04:28 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Я бы тоже так подумал, если бы там был модификатор private. А так оно открыто потомкам и в пределах пакета, что не сильно похоже на спрятанный мьютектс. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
package private потомкам не доступен, а учитывая что в пакаджи java и javax ты так просто классы не загрузишь, то спрятан он достаточно надежно. А вот зачем нужен специальный класс я не понимаю. Если я как-то получу ссылку на этот LOCK (например через рефлексию вытащу) я могу спокойно захватывать на нем монитор, даже если класс объекта мне не доступен. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |