А кто предлагает ТАК писать? Я бы и сам уволил за такое ))
Данный топик скорее just for fun чем для использования в реальной работе. Хотя, как я писал в первой статье, практически весь экзамен Oracle certified professional java programmer состоит из таких заданий, так что иногда такие знания полезны.
Я вот уже на большую часть не могу правильно ответить, с одной стороны из-за невнимательности — лень вчитываться долго, а с другой стороны — всё позабывал, хотя сдавал на SCJP всего полгода назад. Ненужные знания вообще быстро забываются, а это по большей части не особо нужные знания, хотя ими можно классно повыпендриваться :)
Если кого-то интересуют такие вот штуки, советую почитать «Java Puzzlers». www.javapuzzlers.com/
Впрочем, уж насколько я люблю всякие необычные штуки, но все эти знания уж слишком непрактичны.
Тут просто ) Достаточно включить логику.
Сам посуди: когда ты пишешь код a =…, ожидается, что все, что написано справа, присвоится переменной a. Следовательно, присваивание всегда идет последним. А, стало быть, присвоить что-либо выражению нельзя, т.к. это не L-value.
Правильно ответил на 2 вопроса. Еще раз убедился, что нужно писать код максимально просто и понятно, а за подобные извращения жестко бить по рукам. :-)
Тест явно проще предыдущего. 5/7. На знал тонкостей Thread'ов и не ожидал такого ответа в вопросе про интерфейсы. Как показало последующее расследование — в интерфейсах все поля являются финальными; это меня и запутало :-)
> Как правило, множественные операции присваивания рассчитываются справа налево. Но индексы — исключение. В данном случае сначала будет вычислен индекс (arr[0]), и только потом переменной i присвоится новое значение.
Действительно ли тут «исключение»? Может, просто у операции взятия индекса приоритет выше, чем у присваивания, поэтому она выполняется первой?
Знаешь ли ты JAVA, %username%? Часть вторая