Jadual Kandungan
一 序列化" >一 序列化
1.什么是序列化? " >1.什么是序列化?
2.序列化的作用" > 2.序列化的作用
3.序列化的条件" > 3.序列化的条件
5.不能被序列化的字段:" > 5.不能被序列化的字段:
6.序列化操作:" >6.序列化操作:
二 反序列化" > 二 反序列化
1.什么是反序列化" >1.什么是反序列化
2.反序列化操作要求" >2.反序列化操作要求
3.序列化版本号" > 3.序列化版本号
⑷解析过程" >⑷解析过程
⑸反序列操作:" > ⑸反序列操作:
Rumah Java javaTutorial 什么是序列化?序列化的具体介绍

什么是序列化?序列化的具体介绍

Jun 20, 2017 pm 02:25 PM
bersiri

一 序列化

1.什么是序列化?

将内存中的对象写入到硬盘中就是序列化,与一般输出并无区别,只是输出的数据是对象,不是一般的文本。

2.序列化的作用

因为数据在内存中的存储是暂时的,如果需要长久保存对象,必须把对象写入硬盘,就产生了序列化。

3.序列化的条件

一个对象要想被序列号,该对象所属的类必须实现Serializable接口,该接口是一个标志性接口,无任何字段与抽象方法,JVM遇到该接口将为该类分配一个序列化版本号。

4.一个对象被序列化,该对象中的全局变量包含private类型的变量都将被写入硬盘。

5.不能被序列化的字段:

  1. 静态字段不能被序列化,静态变量的值是当前JVM中的值,不是序列化时设定的值。

  2. 被transient修饰的字段不能被序列化。

6.序列化操作:

OutputStream ops=new FileOuptStream(path);
ObjectOuptStream oos=new ObjectOutputStream(ops);
Object obj=new Ojbect();
oos.writeObject(obj);
Salin selepas log masuk

 

二 反序列化

1.什么是反序列化

反序列化就是将硬盘中的数据写入内存,获取保存在文件中的对象。

2.反序列化操作要求

反序列化的顺序必须与序列化的顺序一致。

3.序列化版本号

⑴序列化时会生成一个long类数字,称作序列化版本号,同时保存在序列化文件与类文件中,反序列化时对比两个数字,如果相同,则序列化成功;不相同,则无法反序列化。

⑵序列化版本号用来标注实体类的版本,实体类一旦修改,如果未显式地指定序列化版本号,系统自动生成一个新的版本号,这样两处版本号不同,无法序列化。一般在需要序列化的实体类中显式地设定序列化版本号。

⑶不是重新编译不一定会生成一个新的序列化版本号,只有实体类发生了改变才会生成新的序列化版本号。

⑷解析过程

反序列化时首先对比序列化文件与类文件中的序列化版本号是否相同,如果相同,表明该序列化文件是由当前类文件生成的,可以反序列哈;不相同,表示不是由当前类文件生成的,版本不一致,无法反序列化。

⑸反序列操作:

InputStream is=new FileInputStream(path);
ObjectInputStream ois=new ObjectIputStream(is);
Object obj=ois.readObject();
Salin selepas log masuk

 

Atas ialah kandungan terperinci 什么是序列化?序列化的具体介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Di Jawa, bagaimanakah kita boleh menyusun senarai objek menggunakan flexjson? Di Jawa, bagaimanakah kita boleh menyusun senarai objek menggunakan flexjson? Sep 05, 2023 pm 11:09 PM

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

Bagaimanakah siri Java mempengaruhi prestasi? Bagaimanakah siri Java mempengaruhi prestasi? Apr 16, 2024 pm 06:36 PM

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.

Bagaimanakah pustaka fungsi C++ melakukan pensirilan dan penyahserikatan? Bagaimanakah pustaka fungsi C++ melakukan pensirilan dan penyahserikatan? Apr 18, 2024 am 10:06 AM

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 dan penyahsirilan data Kemahiran pemprosesan data PHP: Cara menggunakan fungsi bersiri dan menyahsiri untuk melaksanakan pensirilan dan penyahsirilan data Jul 29, 2023 am 10:49 AM

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?

Bagaimana untuk menyusun susunan sifat menggunakan perpustakaan Jackson di Jawa? Bagaimana untuk menyusun susunan sifat menggunakan perpustakaan Jackson di Jawa? Aug 28, 2023 pm 12:45 PM

@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

Pensirian dan penyahserikatan antara muka dan kelas abstrak dalam Java Pensirian dan penyahserikatan antara muka dan kelas abstrak dalam Java May 02, 2024 am 08:33 AM

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 ().

Bagaimana untuk menyusun peta menggunakan perpustakaan flexjson di Jawa? Bagaimana untuk menyusun peta menggunakan perpustakaan flexjson di Jawa? Aug 26, 2023 pm 08:13 PM

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

Serialisasi dan deserialisasi jenis fungsi golang Serialisasi dan deserialisasi jenis fungsi golang Apr 29, 2024 am 08:15 AM

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.

See all articles