|
|
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Предлагаю в это теме выкладывать примеры не очевидного(очевидного не для всех) выполнения кода. желательно очень простые.Надеюсь это расширит наш кругозор. начну с себя: вопрос 1 : В каком случае Math.abs вернет отрицательное число? ответ :Math.abs(Integer.MIN_VALUE) вернет отрицательно число так как положительный(строго >0) и отрицательный(<0) диапазон не симметричен - отрицательных чисел на 1 больше. Когда берется модуль от минимального Integer, то получается положительное число на 1 больше, чем максимальный Integer, а это переполнение и собственно это и есть искомое число. вопрос 2 : Есть код: Код: java 1. 2. аналогичны ли такие выражения?: Код: java 1. Код: java 1. ответ: 1 -очевидна ошибка компиляции - не стоит заострять внимания. 2- аналогично: Код: java 1. поэтому всё хорошо. Интересно, что предложите вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 00:04 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Больше понравилось про try/catch/finally Ответьте подряд на 3 вопрос: Что вернет: Код: java 1. 2. 3. 4. 5. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Спойлер: 1: Результат будет «bar», потому что оператор finally будет подставлен перед оператором return, а значит return из finally-блока будет вызван первым, а return из try-блока вообще не будет вызван. 2: Результат будет «foo», потому что значение для оператора return будет положено в стек до того, как будет вызван оператор finally, после которого оно будет восстановлено и возвращено. (Мой пример это не показывает, но это именно то, что вы увидите, если посмотрите байт-код.) Таким образом, изменение значения «value» в блоке finally не имеет ни какого значения для оператора return. 3: Результат будет «bar». Это было удивлением даже для меня, однако все логично, если вы знаете, что оператор break всего лишь GOTO в байт-коде. Т.е. когда finally-блок подставляется как часть внутреннего оператора return, оператор GOTO вызывается раньше, чем инструкция RETURN, что приводит к выходу из цикла. (То же самое для оператора continue внутри finally-блока.) http://habrahabr.ru/post/212759/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 11:54 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Озверин, 2 и 3 кусок кода - одинаковый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 12:28 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
questionerОзверин, 2 и 3 кусок кода - одинаковый. Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 12:32 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Код-майдфак (++i + ++i ) мы обсуждать не будем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 13:18 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
maytonКод-майдфак (++i + ++i ) мы обсуждать не будем? почему бы и нет? часто спрашивают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 13:21 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
maytonКод-майдфак (++i + ++i ) мы обсуждать не будем? зачем? кто то эту муру в жизни использует именно таким образом? уволить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 13:57 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
ОзверинmaytonКод-майдфак (++i + ++i ) мы обсуждать не будем? зачем? кто то эту муру в жизни использует именно таким образом? уволить Именно. А кто спрашивает- тот не понимает сути разработки и собеседования. Лучший ответ- "так писать нельзя". PS: хорошо помогала задача "вставить элемент в упорядоченный однонаправленный список без всяких JDK-классов". Вот тут шевеление извилин видно. Единственный кандидат, быстро набросавший код, потом очень хорошо работал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 14:39 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin PS: хорошо помогала задача "вставить элемент в упорядоченный однонаправленный список без всяких JDK-классов". Вот тут шевеление извилин видно. Единственный кандидат, быстро набросавший код, потом очень хорошо работал... и список тоже самописный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 16:50 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
redwhite90, Я бы не сказал, что ответ на вопрос абсолютно правилен. Метод abs вернет Integer.MIN_VALUE согласно спецификации метода abs. А причины такой реализации известны только разработчикам.Почему метод не выбрасывает исключения ? Чем руководствовались разработчики ? Вот это действительно интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 22:03 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Valery Shiskinredwhite90, Я бы не сказал, что ответ на вопрос абсолютно правилен. Метод abs вернет Integer.MIN_VALUE согласно спецификации метода abs. А причины такой реализации известны только разработчикам.Почему метод не выбрасывает исключения ? Чем руководствовались разработчики ? Вот это действительно интересно. спецификация действительно не врёт. Это очевидно. Но спека иногда очевидна, а иногда - нет. Вот я и хочу, чтобы здесь собирались вещи, которые кого-то когда-то удивили. не беда, что для кого-то это будет очевидно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2014, 12:36 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
redwhite90Alexey TominPS: хорошо помогала задача "вставить элемент в упорядоченный однонаправленный список без всяких JDK-классов". Вот тут шевеление извилин видно. Единственный кандидат, быстро набросавший код, потом очень хорошо работал... и список тоже самописный? А чего там писать? Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2014, 21:23 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, что за Value? Шаблон давай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2014, 21:52 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Эксклюзивный трюк! Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Позволяет обойтись без оператора if ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 13:07 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
MasterZivЭксклюзивный трюк! Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Позволяет обойтись без оператора if ! в книге от head first по паттернам видел что-то подобное) Там говорится, что это способ на любителя) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 13:26 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Alexey Tominredwhite90пропущено... и список тоже самописный? А чего там писать? Код: sql 1. 2. 3. 4. 5. хотел бы я у вас пособеседоваться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 13:27 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
redwhite90, ты использовал тернарную операцию. Доведи дело до конца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 13:40 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
maytonredwhite90, ты использовал тернарную операцию. Доведи дело до конца. не понял. Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 14:43 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Операция ? это и есть функция внутри которой стоит 'if'. Перепиши код без ее использования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 14:57 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
mayton, надо чтобы Код: java 1. вываливал exception. Или мы вообще о разном? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 16:24 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
redwhite90, Инициализация внутри определения анонимного класса (компактный вариант): Код: java 1. 2. 3. 4. 5. На самом деле инициализация происходит внутри конструктора анонимного класса (полный вариант): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Название "финта" - Double Brace Initialization ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 20:13 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Usman, авторНа самом деле инициализация происходит внутри конструктора анонимного класса (полный вариант): я думал всё таки в блоке инициализации, который выполняется после конструктора базового класса, но до конструктора анонимного класса. ссылка на SO реально крутая - надо будет изучить поподробнее ее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 00:18 |
|
||
|
java трюки.
|
|||
|---|---|---|---|
|
#18+
Usmanredwhite90, Инициализация внутри определения анонимного класса (компактный вариант): Код: java 1. 2. 3. 4. 5. Название "финта" - Double Brace Initialization есть мнение, что так можно словить конкретный bad luck, тк получившийся объект анонимного класса, дежит ссылку на внешний объект в котором создан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 01:45 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38569370&tid=2126663]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 529ms |

| 0 / 0 |
