В проекте Android, в котором я сейчас работаю, сериализация объектов используется для хранения статуса активации. В нем создается объект устройства, и все данные, относящиеся к активации, хранятся в нем, и объект хранится в файле в памяти. На этом этапе сериализация приходит на место, и объект сериализуется и сохраняется в файле. Итак, что такое сериализация, и что означает это слово? Это лучшая практика в отношении безопасности? Не удается ли сохранить объект в файле напрямую?Что такое SERIALIZATION в программировании
ответ
Сериализация - это то, что очень легко найти. Это просто процесс взятия двоичного объекта в памяти и преобразования его в некоторый (обычно) строковый формат, чтобы он мог быть сохранен на диск (или, возможно, передан по проводу). Он также включает процесс десериализации.
Для вас в Java есть стандартный интерфейс «serializable», который вы должны реализовать, чтобы сделать класс, ну и сериализуемым. По большей части классы, содержащие только базовые типы данных или сериализуемые типы, вам не нужно делать вручную вручную.
1> Учитывая ваш вопрос, заданный для файла сериализации:
Самый простой способ ускорить стандартной сериализации является использование объекта RandomAccessFile:
public void testWriteBuffered(TestObject test, String fileName) throws IOException {
ObjectOutputStream objectOutputStream = null;
try {
RandomAccessFile raf = new RandomAccessFile(fileName, "rw");
FileOutputStream fos = new FileOutputStream(raf.getFD());
objectOutputStream = new ObjectOutputStream(fos);
objectOutputStream.writeObject(test);
} finally {
if (objectOutputStream != null) {
objectOutputStream.close();
}
}
В в конце мы можем сделать несколько выводов:
небезопасные сериализации больше, чем в 23 раза быстрее, чем стандартный использование java.io.Serializable
Использование RandomAccessFile может ускорить стандартный буферную сериализацию почти в 4 раза
Kryo-динамическая сериализации примерно на 35% медленнее, чем ручной буфер с прямым вводом .
Ref: Dzone
то, что я рекомендую использовать эффективным Java NIO
2> Android перспектива:
В частности, в андроиде использование SQL облегченный с sqlcipher для хранения защищенных данных или предпочтение андроида с защищенной реализацией, если вы загружаете наборы данных из REST API, вы должны использовать сериализаторы/десериализаторы GSON JACKSON! для хранения в SQLlite вы можете использовать orm lite framework
Это задано в контексте Java, оно не имеет ничего общего с Java. – thecoshman
check http://en.wikipedia.org/wiki/Serialization –
@SimonMokhele в целом предпочитает ссылки на вопросы SO, это помогает избежать будущих мертвых ссылок. – thecoshman