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