Попробуйте позвонить window.open
с полным доменом протокола.
window.open('google.com', '_blank') // => Go to brandnames.net/google.com
window.open('https://google.com', '_blank') // => Go to https://google.com
Хороший вопрос. Serializable известен как интерфейс маркера , и его можно рассматривать как тег в классе, чтобы идентифицировать его как имеющий возможности или поведение. например, вы можете использовать это для идентификации классов, которые вы хотите сериализовать, для которых не определен serialVersionUid (и это может быть ошибкой).
Обратите внимание, что обычно используемая библиотека сериализации XStream (и другие) не требует Serializable для быть определенным.
It is needed so that the JVM can know whether or not a class can be safely serialized. Some things (database connections for example) contain state or connections to external resources that cannot really be serialized.
Also, you'll want to make sure that you put a serialVersionUID member in every serializable class to ensure that serialized objects can be de-serialized after a code change or recompile:
// Set to some arbitrary number.
// Change if the definition/structure of the class changes.
private static final long serialVersionUID = 1;
Причина в том, что не все классы могут быть сериализованы. Примеры:
Ввод-вывод: InputStream, HTTP-соединения, каналы. Они зависят от объектов, созданных за пределами виртуальной машины Java, и нет простого способа их восстановить.
Ресурсы ОС, такие как окна, изображения и т. Д.
Сериализация позволяет сохранять объекты непосредственно в двоичные файлы без необходимости преобразовывать их в текст, записывать строку, а затем создавать новый объект и анализировать входные строки при обратном чтении. Основная цель - позволить вам сохранять объекты со всеми их данными в двоичный файл. Я обнаружил, что это чрезвычайно полезно при работе со связанными списками, содержащими множество объектов одного типа, и мне нужно было их сохранить и открыть.