前两天接触到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的作用相关推荐

  1. java基础---serializable的作用

    首先这个接口不提供方法.调用这个接口表示能够序列化. serializable接口的作用,可序列化成字节码保存对象状态用于网络传输,使用一个64位hash码来维护类的版本一致.transient和st ...

  2. 【转】c# [Serializable]的作用

    http://blog.csdn.net/chinarenkai/article/details/3220452 如果你做远程方法调用(RPC)时,比如,服务器端有个类A及对象a,客户端需要无视网络的 ...

  3. Java序列化接口Serializable接口的作用总结

    一.Java序列化接口Serializable的作用: 一个对象有对应的一些属性,把这个对象保存在硬盘上的过程叫做"持久化". 对象的默认序列化机制写入的内容是:对象的类,类签名, ...

  4. Serializable And Parcelable

    Intent在不同的组件中传递对象数据的应用非常普遍.下面介绍两种通过Intent传递对象的方法. 1.实现Serializable接口 2.实现Parcelable接口 为什么要将对象序列化? 1. ...

  5. Android Parcelable和Serializable的区别

    1.作用 Serializable的作用是为了保存对象的属性到本地文件.数据库.网络流.rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的.而Android的Parcelable的设 ...

  6. Serializable的意义

    首先说明Serializable主要作用将类的实例持久化保存,序列化就是保存,反序列化就是读取.保存也不一定保存在本地,也可以保存到远方.类一定要实现Serializable才可以 实例 操作的学生类 ...

  7. 序列化原理(一):从源码理解Serializable

    前言 就在昨天和同事聊天聊起了序列化,我们熟知并且使用最方便的就是Serializable. 那么为什么要序列化呢? 有些朋友会说:序列化主要是为了数据持久化. 我们都知道Serializable是一 ...

  8. 序列化知识 Parcelable和Serializable

    1.Parcelable和Serializable有什么用,它们有什么差别? (1)Serializable的作用是为了保存对象的属性到本地文件.数据库.网络流.rmi以方便数据传输,当然这种传输可以 ...

  9. fegin调用为什么要序列化_全方位解析Java的序列化

    前言 相信大家日常开发中,经常看到Java对象"implements Serializable".那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~ 什么是Java ...

最新文章

  1. 合种侧柏、云杉专车2-3天领证
  2. python类型提示包 检查静态类型_Pyright:微软提供的Python静态类型检查器
  3. oracle查看存储过程最近编译,Oracle恢复被误编译覆盖的存储过程
  4. 神经网络中BP(back propagation)到底在干些什么
  5. 计算机科学是对描述和变换,对计算机科学发展的思考
  6. ubuntu 14.04 环境下打开xls、pdf与png文件
  7. 经典的 div + css 鼠标 hover 下拉菜单
  8. scala 模式匹配详解 1
  9. 小程序wx.uploadFile 显示errMsg: uploadFile:fail Error: Parse Error
  10. 明日亮相!刘作虎曝一加9RT三大绝活:快、稳、省
  11. java类和对象数组传参_java对象,数组作为参数传递给
  12. qgraphicsview鼠标移动图片_QGraphicsView中的QGraphicsItem鼠标拖动
  13. 开课吧Java课堂:是什么是比较函数?
  14. 性能提升五十倍:消息队列延时聚合通知的重要性
  15. opencv裁剪图像(不规则裁剪)
  16. JAVA实验面向对象程序设计,面向对象程序设计a(java)实验报告.docx
  17. 商城系统源码开发技巧分享
  18. 如何批量将 Json 转为 Excel 格式
  19. 【征文】纸短情长叹朝夕
  20. 那些你所不知道的结构光技术

热门文章

  1. 将SQL文件导入Hive
  2. 【Linux网络编程】TCP网络编程中connect listen和accept三者之间的关系
  3. 【Linux系统编程】进程和线程的区别
  4. 80端口攻击_内网端口转发工具的使用总结
  5. 分布式理论、架构设计(自定义RPC)
  6. ES6语法大全 export,import,for.of循环,promise等等
  7. 一个菜鸟从高一到大二的作品整理
  8. 51nod 1096 距离之和最小 思维题,求中位数
  9. java3d 上色_Unity 着色过程
  10. liunx内核中的互斥自旋锁和读写自旋锁的实现详解