Я новичок в Java. Первое, что я узнал, это то, что метод main () исполняемого класса должен быть public , и причина была в том, что этот метод будет вызываться JVM , он должен быть виден за пределами класс и, следовательно, должны быть общедоступными.Теперь, изучая сериализацию, я обнаружил, что частные методы writeObject ()
и readObject ()
класса Serializable
могут быть вызваны JVM во время сериализации и де- сериализация объекта! Если это частные методы, то как JVM может их вызвать? Если это возможно, то почему он не может вызвать метод main ()?
После просмотра некоторой документации по java я прочитал эту строку «JVM может получить доступ к частным методам объекта». Поскольку мы вызываем readObject () с использованием экземпляра ObjectInputStream, поэтому он доступен для JVM, тогда как метод main (), являющийся статическим методом или методом класса и вызываемый без создания экземпляра любого объекта класса, должен быть общедоступным, чтобы быть доступным для JVM! Имеет ли это смысл ? Я не знаю .