Будет ли встроенный метод (ы) Java во время оптимизации?

Интересно, достаточно ли умен JVM / javac, чтобы превратить

// This line...
string a = foo();

string foo()
{
  return bar();
}

string bar()
{
  return some-complicated-string computation;
}

в

string a = bar();

или удалить ненужный вызов foo () в случае выпуска (из-за недоступности кода):

string a = foo(bar());

// bar is the same
...

string foo(string b)
{
  if (debug) do-something-with(b);
}

Я считаю, что да для первый пример и «не очень уверен» для второго, но может ли кто-нибудь дать мне несколько указателей / ссылок, чтобы подтвердить это?

27
задан Schultz9999 14 October 2011 в 19:54
поделиться