Ответ 1
java.io.Serializable
- это то, что известно как "интерфейс маркера". Сам интерфейс не имеет методов, определенных в нем. Поэтому любой класс может легко реализовать этот интерфейс, просто выполнив его:
public class MyClass implements Serializable {
public void aMethodForMyClass() { }
// not implementing any specific java.io.Serializable methods because
// the interface has no methods to implement.
}
Это "маркерный" интерфейс, потому что, реализуя этот интерфейс, вы говорите Java-сериализатору, что это нормально для сериализации объектов этого типа. Если ваш класс не реализует этот интерфейс, сериализатор откажется сериализовать любые объекты этого типа.