Outer outer = new Outer();
an Object of Outer class is created on heap and reference variable points to it.
If I under
Each instance of an inner class holds a reference to an instance of its outer class. It's the reference that you get when you write Outer.this within one of the inner class's methods. The anonymous Outer instance won't be eligible for garbage collection unless all Inner instances associated with it are also eligible for garbage collection.