Now you are clear that inner classes keep reference to outer class .So image scenario where you pass reference of inner class to other outer world class and then reference never gets released to in turn OuterClass is also referenced , hence leak. So this makes using inner classes bad if not used prpperly.