Serializable的作用
前两天接触到VO,DTO,entity这些概念,发现别人的代码中会有 implements serializable这个东西,之前并没有见过这种写法,就去了解了一下原因
import java.io.Serializable;public class Admin implements Serializable {
}
Serializable主要作用将类的实例持久化保存,序列化就是保存,反序列化就是读取。保存也不一定保存在本地,也可以保存到远方。类一定要实现Serializable才可以
这个介绍非常的不接地气,于是我与去看了几篇博客,是这样理解的:
序列化的过程,就是一个“freeze”的过程,它将一个对象freeze(冷冻)住,然后进行存储,等到再次需要的时候,再将这个对象de-freeze就可以立即使用。
我们以为的没有进行序列化,其实是在声明的各个不同变量的时候,由具体的数据类型帮助我们实现了序列化操作。
如果有人打开过Serializable接口的源码,就会发现,这个接口其实是个空接口,那么这个序列化操作,到底是由谁去实现了呢?其实,看一下接口的注释说明就知道,当我们让实体类实现Serializable接口时,其实是在告诉JVM此类可被序列化,可被默认的序列化机制序列化。
为什么需要序列化
1,存储对象在存储介质中,以便在下次使用的时候,可以很快捷的重建一个副本。也就是When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object.
问题:我没有实现序列化的时候,我一样可以存入到我的sqlserver或者MySQL、Oracle数据库中啊,为什么一定要序列化才能存储呢????
2,便于数据传输,尤其是在远程调用的时候!
其实说了这么多,想表达的意思就是:
Serializable接口是一个里面什么都没有的接口
它的源代码是public interface Serializable{},即什么都没有。
如果一个接口里面什么内容都没有,那么这个接口是一个标识接口,比如,一个学生遇到一个问题,排错排了几天也没解决,此时,她举手了(示意我去帮他解决),然后我过去,帮他解决了,那么这个举手其实就是一个标识,自己不能解决的问题标示我去帮他解决,在Java中的这个Serializable接口是给JVM看的,告诉JVM,我不做这个类的序列化了,你(JVM)给我序列化,序列化就是变成二进制流,比如云计算、Hadoop,特别是Hadoop完全就是分布式环境,那么就要涉及到对象要在网络中传输,里面的全是二进制流,当然你来做这个序列化操作也可以,但是这个类里面可能还有一个类,如果你把外面的类对象Person变成二进制,那么里面也要序列化(这要用到深度遍历,很麻烦),干脆告诉JVM,让他来帮你做。
serializable接口就是Java提供用来进行高效率的异地共享实例对象的机制,实现这个接口即可。
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
转载于:https://www.cnblogs.com/tentacion/p/11356174.html
Serializable的作用相关推荐
- java基础---serializable的作用
首先这个接口不提供方法.调用这个接口表示能够序列化. serializable接口的作用,可序列化成字节码保存对象状态用于网络传输,使用一个64位hash码来维护类的版本一致.transient和st ...
- 【转】c# [Serializable]的作用
http://blog.csdn.net/chinarenkai/article/details/3220452 如果你做远程方法调用(RPC)时,比如,服务器端有个类A及对象a,客户端需要无视网络的 ...
- Java序列化接口Serializable接口的作用总结
一.Java序列化接口Serializable的作用: 一个对象有对应的一些属性,把这个对象保存在硬盘上的过程叫做"持久化". 对象的默认序列化机制写入的内容是:对象的类,类签名, ...
- Serializable And Parcelable
Intent在不同的组件中传递对象数据的应用非常普遍.下面介绍两种通过Intent传递对象的方法. 1.实现Serializable接口 2.实现Parcelable接口 为什么要将对象序列化? 1. ...
- Android Parcelable和Serializable的区别
1.作用 Serializable的作用是为了保存对象的属性到本地文件.数据库.网络流.rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的.而Android的Parcelable的设 ...
- Serializable的意义
首先说明Serializable主要作用将类的实例持久化保存,序列化就是保存,反序列化就是读取.保存也不一定保存在本地,也可以保存到远方.类一定要实现Serializable才可以 实例 操作的学生类 ...
- 序列化原理(一):从源码理解Serializable
前言 就在昨天和同事聊天聊起了序列化,我们熟知并且使用最方便的就是Serializable. 那么为什么要序列化呢? 有些朋友会说:序列化主要是为了数据持久化. 我们都知道Serializable是一 ...
- 序列化知识 Parcelable和Serializable
1.Parcelable和Serializable有什么用,它们有什么差别? (1)Serializable的作用是为了保存对象的属性到本地文件.数据库.网络流.rmi以方便数据传输,当然这种传输可以 ...
- fegin调用为什么要序列化_全方位解析Java的序列化
前言 相信大家日常开发中,经常看到Java对象"implements Serializable".那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~ 什么是Java ...
最新文章
- 合种侧柏、云杉专车2-3天领证
- python类型提示包 检查静态类型_Pyright:微软提供的Python静态类型检查器
- oracle查看存储过程最近编译,Oracle恢复被误编译覆盖的存储过程
- 神经网络中BP(back propagation)到底在干些什么
- 计算机科学是对描述和变换,对计算机科学发展的思考
- ubuntu 14.04 环境下打开xls、pdf与png文件
- 经典的 div + css 鼠标 hover 下拉菜单
- scala 模式匹配详解 1
- 小程序wx.uploadFile 显示errMsg: uploadFile:fail Error: Parse Error
- 明日亮相!刘作虎曝一加9RT三大绝活:快、稳、省
- java类和对象数组传参_java对象,数组作为参数传递给
- qgraphicsview鼠标移动图片_QGraphicsView中的QGraphicsItem鼠标拖动
- 开课吧Java课堂:是什么是比较函数?
- 性能提升五十倍:消息队列延时聚合通知的重要性
- opencv裁剪图像(不规则裁剪)
- JAVA实验面向对象程序设计,面向对象程序设计a(java)实验报告.docx
- 商城系统源码开发技巧分享
- 如何批量将 Json 转为 Excel 格式
- 【征文】纸短情长叹朝夕
- 那些你所不知道的结构光技术