Gdzie przechowywane są końcowe zmienne lokalne Java?

Weź następujący przykład:

public void init() {
    final Environment env = new Environment();
    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
             env.close();
        }
     });
}

Po pierwsze, gdzie jestenv przechowywane? Czy to:

skopiowany przez kompilator do ukrytej zmiennej członka klasy wewnętrznej, która się do niego odwołujeskopiowane i umieszczone na stosiepozostawiony na stosie i jakoś tam wspomnianycoś innego

Mójodgadnąć to pierwsza opcja.

Po drugie, wykonuj wszelkie problemy z wydajnością, które wynikają z tego (zamiast po prostu tworzyćenv jako zmienna składowa klasy i odwołująca się do niej jako taka), szczególnie jeśli tworzysz dużą liczbę takich wewnętrznych konstrukcji klas, które odwołują się do końcowych zmiennych lokalnych.

questionAnswers(1)

yourAnswerToTheQuestion