2013-06-28 10 views
0

Я знаю, что оба эти утверждения оценивают один и тот же ответ, но есть ли какие-либо проблемы с производительностью, связанные с этими утверждениями?В чем разница между a = a + b и a + = b?

+1

Ничего, a = = 1 будет преобразовано как a = a + 1 внутренне компилятором, я думаю. – kosa

+1

Посмотрите на сгенерированный код. –

+0

Единственное отличие заключается в том, что выражение 'a' является выражением, которое имеет побочные эффекты при оценке. В первом случае он получает оценку (имеет побочные эффекты) дважды, в последнем случае только один раз. Если это просто простое имя переменной, то они одинаковы на 100%. – Patashu

ответ

0

Сгенерированный код будет таким же для обоих. Единственное различие заключается в удобочитаемости кода.

+0

Просто указать это не совсем так, [вот один из самых высоких голосовых java-вопросов] (http://stackoverflow.com/questions/8710619/java-operator). – Zong