A static nested class does not hold an implicit reference to the outer instance; it can be created without an outer object. An inner class holds a reference to the outer instance, which can increase memory usage and lead to leaks if misused.