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:
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.