где и как вызывается метод readResolve() и класс Singleton имеет только одно поле объект Singleton при сохранении в ByteArrayOutputStream что мы именно храним? ведь команда new Singleton это выделение памяти в куче то есть мы храним в ByteArrayOutputStream адрес памяти?