什么是序列化?序列化的具体介绍
一 序列化
1.什么是序列化?
将内存中的对象写入到硬盘中就是序列化,与一般输出并无区别,只是输出的数据是对象,不是一般的文本。
2.序列化的作用
因为数据在内存中的存储是暂时的,如果需要长久保存对象,必须把对象写入硬盘,就产生了序列化。
3.序列化的条件
一个对象要想被序列号,该对象所属的类必须实现Serializable接口,该接口是一个标志性接口,无任何字段与抽象方法,JVM遇到该接口将为该类分配一个序列化版本号。
4.一个对象被序列化,该对象中的全局变量包含private类型的变量都将被写入硬盘。
5.不能被序列化的字段:
静态字段不能被序列化,静态变量的值是当前JVM中的值,不是序列化时设定的值。
被transient修饰的字段不能被序列化。
6.序列化操作:
OutputStream ops=new FileOuptStream(path); ObjectOuptStream oos=new ObjectOutputStream(ops); Object obj=new Ojbect(); oos.writeObject(obj);
二 反序列化
1.什么是反序列化
反序列化就是将硬盘中的数据写入内存,获取保存在文件中的对象。
2.反序列化操作要求
反序列化的顺序必须与序列化的顺序一致。
3.序列化版本号
⑴序列化时会生成一个long类数字,称作序列化版本号,同时保存在序列化文件与类文件中,反序列化时对比两个数字,如果相同,则序列化成功;不相同,则无法反序列化。
⑵序列化版本号用来标注实体类的版本,实体类一旦修改,如果未显式地指定序列化版本号,系统自动生成一个新的版本号,这样两处版本号不同,无法序列化。一般在需要序列化的实体类中显式地设定序列化版本号。
⑶不是重新编译不一定会生成一个新的序列化版本号,只有实体类发生了改变才会生成新的序列化版本号。
⑷解析过程
反序列化时首先对比序列化文件与类文件中的序列化版本号是否相同,如果相同,表明该序列化文件是由当前类文件生成的,可以反序列哈;不相同,表示不是由当前类文件生成的,版本不一致,无法反序列化。
⑸反序列操作:
InputStream is=new FileInputStream(path); ObjectInputStream ois=new ObjectIputStream(is); Object obj=ois.readObject();
Atas ialah kandungan terperinci 什么是序列化?序列化的具体介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Flexjson ialah perpustakaan ringan untuk mensiri dan menyahsiri objek Java ke dan dari format JSON. Kita boleh menyusun senarai objek menggunakan kaedah serialize() kelas JSONSerializer. Kaedah ini melakukan serialisasi cetek pada contoh sasaran. Kita perlu menghantar senarai objek jenis senarai sebagai parameter kepada kaedah serialize(). Contoh sintaks publicStringserialize(Objecttarget) importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerial

Kesan siri pada prestasi Java: Proses siri bergantung pada refleksi, yang akan menjejaskan prestasi dengan ketara. Serialisasi memerlukan penciptaan aliran bait untuk menyimpan data objek, mengakibatkan peruntukan memori dan kos pemprosesan. Mensiri objek besar menggunakan banyak memori dan masa. Objek bersiri meningkatkan beban apabila dihantar melalui rangkaian.

Panduan Pensirilan dan Penyahserikatan Perpustakaan C++ Pensirian: Mencipta aliran output dan menukarnya kepada format arkib. Mensiri objek ke dalam arkib. Penyahserialisasian: Mencipta aliran input dan memulihkannya daripada format arkib. Nyahserialisasi objek daripada arkib. Contoh praktikal: Serialisasi: Mencipta aliran keluaran. Buat objek arkib. Cipta dan sirikan objek ke dalam arkib. Penyahserikatan: Buat aliran input. Buat objek arkib. Cipta objek dan deserialisasikannya daripada arkib.

Kemahiran pemprosesan data PHP: Cara menggunakan fungsi bersiri dan menyahsiri untuk melaksanakan pensirilan data dan penyahseririan Pensirilan dan penyahsiriran ialah salah satu kemahiran pemprosesan data yang biasa digunakan dalam sains komputer. Dalam PHP, kita boleh menggunakan fungsi serialize() dan unserialize() untuk melaksanakan operasi bersiri dan penyahserikan data. Artikel ini akan memberi anda pengenalan terperinci tentang cara menggunakan kedua-dua fungsi ini dan memberikan contoh kod yang berkaitan. 1. Apakah yang dimaksudkan dengan serialisasi dan deserialisasi dalam pengaturcaraan komputer?

@JsonPropertyOrder ialah anotasi yang digunakan pada peringkat kelas. Ia mengambil sebagai atribut senarai medan yang mentakrifkan susunan medan muncul dalam rentetan yang dijana oleh siri JSON objek. Sifat yang disertakan dalam pengisytiharan anotasi boleh disirikan terlebih dahulu (mengikut susunan ia ditakrifkan), diikuti oleh mana-mana sifat yang tidak termasuk dalam definisi. Contoh sintaks public@interfaceJsonPropertyOrder importcom.fasterxml.jackson.core.*;importcom.fasterxml.jackson.databind.*;importcom.fasterxml.jac

Antara muka tidak boleh bersiri secara langsung Kelas abstrak boleh bersiri tetapi hanya jika ia tidak mengandungi medan bukan statik, bukan sementara atau mengatasi kaedah writeObject() dan readObject() boleh dilaksanakan melalui kelas konkrit yang melaksanakan antara muka atau mengatasi writeObject() dan readObject pelaksanaan kelas Abstrak kaedah ().

Flexjson ialah perpustakaan ringan untuk mensiri dan menyahsiri objek Java ke dan dari format JSON. Kami juga boleh mensirikan Peta menggunakan kaedah serialize() kelas JSONSerializer, yang melakukan serialisasi cetek pada contoh sasaran. Contoh sintaks publicStringserialize(Objecttarget) importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerializeMapTest{ publ

Jenis fungsi GoLang boleh disiri dan dinyahsiri melalui pakej pengekodan/gob. Pensirian: Daftar jenis tersuai dan gunakan gob.NewEncoder untuk mengekod jenis fungsi ke dalam tatasusunan bait. Penyahserialisasian: Gunakan gob.NewDecoder untuk menyahsiri jenis fungsi daripada tatasusunan bait.
