1) First and most important difference between Inner class and nested static class is that Inner class require instance of outer class for initialization and they are always associated with instance of enclosing class . On the other hand nested static class is not associated with any instance of enclosing class.