|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Добрый день! Вот пулл-реквест в рабочий код: Fix ArrayIndexOutOfBoundsException Было: Код: sql 1. 2.
Стало: Код: sql 1. 2.
Вот вроде нафиг не надо знать эту странную багофичу abs, а вот выстрелила... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 12:12 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Мне первый вариант видится корректным. А в чем подвох? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 12:47 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Alexey Tomin, abs(Integer.MIN_VALUE)=Integer.MIN_VALUE, например, но как hash может быть оказаться таким ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 12:50 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
А мне вообще оба варианта видятся одинаковыми Подвоха так же не понял ((( вроде везде int, во float (ошибки округления) скатиться не должны ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 12:52 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevА мне вообще оба варианта видятся одинаковыми Подвоха так же не понял ((( вроде везде int, во float (ошибки округления) скатиться не должны ((( Оказывается, если почитать документацию, то можно найти вот такой прикол: Код: java 1.
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 12:55 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Типа нужно было не выпендриваться, а просто к unsigned int скастовать? вот нафига hash делать знаковым ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 12:56 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevТипа нужно было не выпендриваться, а просто к unsigned int скастовать? вот нафига hash делать знаковым ((( А в яве есть беззнаковые ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 12:57 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Да ладно, если values степень двойки, можно было бы по & обрезать. Горе от ума. Не пытались бы написать универсально, не нарвались бы на Math.abs. Который, в принципе, в данном случае не сильно и нужен. Бинарное & в любом случае быстрее, чем деление по модулю. p.s. Вот 99% уверен, что values.length == степень двойки ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 13:03 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevВот 99% уверен, что values.length == степень двойки ))) Быстрый поиск показал, что одно из значений - "40" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 13:17 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
гмм...ну если на собеседовании спрашивать такие тонкости, то мне жаль того, кто будет искать новых работников ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 13:37 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
chpashaгмм...ну если на собеседовании спрашивать такие тонкости, то мне жаль того, кто будет искать новых работников ;) Нет, конечно, не буду спрашивать. Но и "нафиг не надо" тоже не получится сказать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 13:49 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Alexey TominНо и "нафиг не надо" тоже не получится сказать :) согласен, инфа занятная. и главное причина ясна, но чёрт меня подери, что за чудесная закладка ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 13:58 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Alexey Tomin Стало: Код: sql 1. 2.
А нужно было сделать предварительно кошерную конвертацию :) Примерно так - пусть знатоки поправят синтаксис, если необходимо: Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 14:19 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Alexey Tomin, то что Math.abs() в случае Integer.MIN_VALUE возвращает хрень это еще полбеды. А вот то что деление с остатком в жаве не как в математике (там остаток по определению неотрицательный) - вот это ад. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 15:17 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevТипа нужно было не выпендриваться, а просто к unsigned int скастовать? вот нафига hash делать знаковым ((( Тогда проще через бинарное ИЛИ сбросить старший бит, а потом уже делить или что-то еще. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 17:47 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
ПылинкаТогда проще через бинарное ИЛИ сбросить старший бит, а потом уже делить или что-то еще. +1 только через И через или бит можно установить. сбросить через и ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 17:51 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevчерез или бит можно установить. сбросить через и )))Или троица "и-или-не" или пара "и-исключающее или" ("или-исключающее или"). "Исторически сложилось, что используется пара "and-xor". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 17:59 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev+1 только через И через или бит можно установить. сбросить через и ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 23:37 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev+1 только через И через или бит можно установить. сбросить через и ))) каюсь, задумался пока писал. Про то, что кажется я даже помню как в свое время с удивлением про эти MAX_MIN_VALUE и проблемы с ними читал на заре знакомства с 1-й java. Я тогда еще подумал -"зачем я это читаю?" И с тех пор туда не заглядывал. А оно вон как оборачивается - завалят меня на этом вопросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2018, 00:15 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Alexey TominДобрый день! Вот пулл-реквест в рабочий код: Fix ArrayIndexOutOfBoundsException Было: Код: sql 1. 2.
Стало: Код: sql 1. 2.
Вот вроде нафиг не надо знать эту странную багофичу abs, а вот выстрелила... и что тут такого ах афигеть какого тупого криминального? на лицо или ошибка в первом или во втором. оба случая видятся адекватно в зависимости от того что ообще получить ожидают. в целом лично я такую порнуху ни в первом ни во втором случае в принципе делать не стал. может вы еще стринги в стрингпул кладете интерном а потом иквалз иквалзом сравниваете? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2018, 12:23 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Увы, abs не является локальной проблемой Явы, это есть и в других языках. Что до собеседования, то я бы спрашивал первым делом диплом о высшем образовании, как минимум высшем техническом, обязательно очном, это сразу решало бы 90% процентов возможных проблем с кандидатом. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2018, 23:17 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Eugene NewУвы, abs не является локальной проблемой Явы, это есть и в других языках. Скорее всего это процессор нагадил. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 08:01 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Alexey TominEugene NewУвы, abs не является локальной проблемой Явы, это есть и в других языках. Скорее всего это процессор нагадил. при чем тут процессор? это бинарная арифметика нагадила Все притензии толи к Джордж Булю. толи к Лейбницу ))) – Взять бы этого Канта, да за такие доказательства года на три в Соловки! – совершенно неожиданно бухнул Иван Николаевич. ... Но предложение отправить Канта в Соловки не только не поразило иностранца, но даже привело в восторг. – Именно, именно, – закричал он, и левый зеленый глаз его, обращенный к Берлиозу, засверкал, – ему там самое место! .... – Но, – продолжал иноземец, не смущаясь изумлением Берлиоза и обращаясь к поэту, – отправить его в Соловки невозможно по той причине, что он уже с лишком сто лет пребывает в местах значительно более отдаленных, чем Соловки, и извлечь его оттуда никоим образом нельзя, уверяю вас! – А жаль! – отозвался задира-поэт. – И мне жаль! – подтвердил неизвестный, сверкая глазом ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 14:05 |
|
А вы говорите, зачем тонкости на собеседовании спрашивать...
|
|||
---|---|---|---|
#18+
Alexey Tomin, все дело в том, что максимальный int, хранящийся в ячейке памяти, меньше по модулю, чем минимальный отрицательный int на единичку. И этот особый случай обрабатывать в функции не хотят, просто вычисляют минус число, которое потом интерпретируют как отрицательное из-за того, что оно не помещается. я бы добавил проверку и генерировал бы либо ошибку времени выполнения, либо NaN. По крайней мере функцию не следовало называть abs. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 14:20 |
|
|
start [/forum/topic.php?fid=59&msg=39705611&tid=2121761]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 403ms |
total: | 547ms |
0 / 0 |