powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / А вы говорите, зачем тонкости на собеседовании спрашивать...
16 сообщений из 41, страница 2 из 2
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39707072
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene Newлибо ошибку времени выполнения

Divide by zero было бы самое то

Eugene Newлибо NaN

В int нет NaN

Но процессоры поступают проще:
https://web.itu.edu.tr/kesgin/mul06/intel/instr/neg.html

Subtracts the destination from 0 and saves the 2s complement of dest back into dest.

Думаю в ASM'е в этом случае флаг переноса устанавливаетя. А в Java, как высокоуровневом языке, его просто проигнорировали и получили такой "эффект".
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39707161
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGA,
Это ж как должно повезти, чтобы на практике встретился хэш 0x80000000?
Если неприятность может случится, она происходит. Закон Мэрфи.

Leonid Kudryavtsev,
Divide by zero было бы самое то

Не понял. Проглотило бы без ошибки деление на ноль?

В int нет NaN

Точно, я затупил.
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39707202
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewНе понял
В том плане, что это единственная арифметическая ошибка в процессорах сейчас Но в процессоре, скорее всего, ошибки ни потери точности нет. Скорее всего будет установлен флаг переноса, а дальше его корректно обработать - задача программиста.

1) Можно было бы арифметику делать на singed long
2) Или с hash'ем работать как с unsigend: через бинарные маски или через

https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#remainderUnsigned-int-int-
(Java 1.8)

Math.Abs и математика над Hash'ами - даром не нужна.
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39707404
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGAAlexey Tomin,

Это ж как должно повезти, чтобы на практике встретился хэш 0x80000000? Неужели таки "выстрелило"?..

Да, выстрелило. Там не проблема- это DMP, новые данные валяться непрерывно тысячами в секунду.

У нас другая бага выстрелила- приложение при старте посылает сигнал регистрации в единую систему авторизации. Бага была в том, что если от двух приложений сигнал придёт в одну милисекунду то будет ошибка. А стартуют приложения- ну 1000 в день в самом крайнем случае. Так один тестировщик поймал эту багу. Хорошему тестировщику теория вероятности не помеха
Я час логи читал, пока не догадался
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39707405
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНо процессоры поступают проще:
https://web.itu.edu.tr/kesgin/mul06/intel/instr/neg.html

Subtracts the destination from 0 and saves the 2s complement of dest back into dest.

Думаю в ASM'е в этом случае флаг переноса устанавливаетя. А в Java, как высокоуровневом языке, его просто проигнорировали и получили такой "эффект".

Экономят на тактах процессора. Постоянно флаг переполнения проверять- дорого.
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39707415
Luchok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominДобрый день!

Вот пулл-реквест в рабочий код:
Fix ArrayIndexOutOfBoundsException
Было:
Код: sql
1.
2.
int hash = ...;
values[Math.abs(hash) % values.length] = ...



Стало:
Код: sql
1.
2.
int hash = ...;
values[Math.abs(hash % values.length)] = ...



Вот вроде нафиг не надо знать эту странную багофичу abs, а вот выстрелила...
проект убила или кандидата?
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39707587
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Luchokпроект убила или кандидата?

Бага и фикс. Не критично. У нас не атомная станция, а реклама. Не показали баннер- ну что ж
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39707942
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tomin,

богатая неделя на ArrayIndexOutOfBoundsException, я в касандре вон нашел, что integer переполнился при сложении https://issues.apache.org/jira/browse/CASSANDRA-14773 , хвала аллаху что пока в версии которая никогда не была зарелизена(официально).
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39708035
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominWGAAlexey Tomin,

Это ж как должно повезти, чтобы на практике встретился хэш 0x80000000? Неужели таки "выстрелило"?..

Да, выстрелило. Там не проблема- это DMP, новые данные валяться непрерывно тысячами в секунду.

У нас другая бага выстрелила- приложение при старте посылает сигнал регистрации в единую систему авторизации. Бага была в том, что если от двух приложений сигнал придёт в одну милисекунду то будет ошибка. А стартуют приложения- ну 1000 в день в самом крайнем случае. Так один тестировщик поймал эту багу. Хорошему тестировщику теория вероятности не помеха
Я час логи читал, пока не догадался
1:2^32/2 шанс. жесть какая. да хоть 1000 раз стартуй на дню.
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39708038
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не совсем понял сентенции на предмет тонкостей и спрашивания на собеседовании кейса в топике. т.е. вы полагаете, что вас взяи на работу случайно и по ошибке?
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39708058
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,

1:2^32/2 шанс. жесть какая. да хоть 1000 раз стартуй на дню.

Огласите, пожалуйста, свою методику подсчета шансов.
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39708059
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорян, двойка лишняя
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39708126
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTне совсем понял сентенции на предмет тонкостей и спрашивания на собеседовании кейса в топике. т.е. вы полагаете, что вас взяи на работу случайно и по ошибке?

Да это не мой код- не я писал, не я правил. И вообще это шутка была.

Просто есть дискуссия на тему того, надо ли знать про размер кэша Integer, про такое поведение abs, про способ хранения элементов с коллизиями хэша в HashMap.

На самом деле собеседование - это поиск границ знания и понимания человека. И если человек на все вопросы знает ответы- то тут что-то неправильно- либо собеседует слишком слабый технарь, либо вопросы не умеет задавать. У нас работает несколько разработчиков, которые после собеседования выходили со словами "да я ничего не знаю, оказывается", а потом получали офер на запрошенную сумму
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39708239
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
применительно к теме.. ну типа все что тут обсуждают что я на сейм пейдж.. речь о том что абс возвращает минусовое значение при передаче минимального инта, верно? ))
ну так ёу, это ж классика тестирования проверять методы на пограничных значениях. по-идее правильный тест должен был это выкусить. вот.
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39708365
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTприменительно к теме.. ну типа все что тут обсуждают что я на сейм пейдж.. речь о том что абс возвращает минусовое значение при передаче минимального инта, верно? ))
ну так ёу, это ж классика тестирования проверять методы на пограничных значениях. по-идее правильный тест должен был это выкусить. вот.

Тестировать функцию, раскладывающую объекты по партициям на пограничное значение хэша объекта?
Нет, мы ещё не параноики.
...
Рейтинг: 0 / 0
А вы говорите, зачем тонкости на собеседовании спрашивать...
    #39708385
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну.. давай так.. может быть объект... с криво написанным хэшем... ты его используешь как отправную точку. я понимаю канеш что есть психи кто геттеры и сеттеры тестируют. но такую хитро выкрашенную функцию потестить на что-нибудь этакое - это сам боженька велел.
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / А вы говорите, зачем тонкости на собеседовании спрашивать...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]