Где хранятся финальные локальные переменные Java?
Возьмите следующий пример:
public void init() {
final Environment env = new Environment();
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
env.close();
}
});
}
Во-первых, гдеenv
хранится? Это:
мойУгадай это первый вариант.
Во-вторых, делать какие-либо проблемы с производительностью, которые возникают из-за этого (а не просто создаватьenv
в качестве переменной-члена класса и ссылки на нее как таковой), особенно если вы создаете большое количество таких конструкций внутреннего класса, которые ссылаются на конечные локальные переменные.