Код: Выделить всё
private void simpleMethod() {
int myInt = 137;
myInt = 42;
myInt = myInt + 1;
/* ... code using myInt ... */
}
< /code>
Студент спросил меня, будет ли Myint < /code> когда -либо на самом деле значения 137 и 42, когда программа запускается, или она просто прыгнет прямо к удержанию 43. Я сказал студенту, что код выполнит каждую строку по очереди, поэтому переменная фактически будет иметь эти промежуточные значения. Javac Согласно Javap , в моей системе приведенный выше код, скомпилированный с Javac производит
0: sipush 137
3: istore_1
4: bipush 42
6: istore_1
7: iload_1
8: iconst_1
9: iadd
10: istore_1
11: return
< /code>
Таким образом, здесь нет оптимизации. Мой вопрос, однако, заключается в том, является ли это законным оптимизировать это или нет, так что это ничего не разрешает.
Подробнее здесь: https://stackoverflow.com/questions/143 ... -this-code