Локальный внутренний класс

Я прочитал руководство по внутреннему классу и не понимаю одного. Говорят, что внутренний класс содержит скрытую ссылку на внешний класс, поэтому я задаю несколько вопросов через этот простой класс:

public class OuterClass {

public void doSomething() {
    JButton button = new JButton();
    button.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e) {                
      }
    });
  }
}

Итак, у нас есть один локальный внутренний класс, который находится внутри метода doSomething () и У меня есть несколько вопросов.

  1. Содержит ли этот локальный внутренний класс ссылку на OuterClass, поскольку он локальный?

  2. Сохраняется ли в этом локальном внутреннем классе память после завершения метода doSomething () ?

  3. Есть ли ситуация, в которой OuterClass имеет право на сборку мусора, но на локальный внутренний класс по-прежнему ссылаются другие классы? Что случилось бы?

8
задан Joachim Sauer 30 May 2011 в 09:17
поделиться