Serializable is a marker interface that has no data member and method. It is used to mark java classes to provide them with certain capabilities. If automatic serialization support is provided it will make the class internal a part of public API. This restricts from making any changes to class design which breaks encapsulation. Moreover, serialization sometimes can also lead to many security issues such as now any class can access data which normally it can’t. Also, the serialized form of an inner class is generally not being well defined.
So, if we make all the classes Serializable, it will only worsen the issue. Hope now you get the reason behind why classes are not Serializable by default.