Кто-то постулировал в какой-то теме форума, что многие люди и даже опытные разработчики Java не понимают следующий мир Java-кода.Неожиданное поведение == после postincrementation
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1++ == i2++);
System.out.println(i1 == i2);
Как человек с интересом к Java, я дал свои мысли и пришел к следующему результату.
System.out.println(i1++ == i2++);
// True, since we first check for equality and increment both variables afterwards.
System.out.println(i1 == i2);
// True again, since both variables are already incremented and have the value 128
Eclipse говорит мне об обратном. Первая строка истинна, а вторая - false.
Я действительно был бы признателен за разъяснения.
Второй вопрос. Является ли эта конкретная Java или этот пример выполняется, например, для языков на языке C?
попробовать выполнить 'i1.equals (i2)' – vikingsteve
http://stackoverflow.com/questions/5117132/integer-wrapper-objects-share-the-same-instances-only-within-the-value-127 –
Это вопрос очень похож на тот, который был отправлен @DominikKunicki –