Java Serializable(序列化)的理解

看TreeSet源码时,看到了transient关键字,搜了一下资料,又看到了序列化,所以,现在来总结一下序列化。

 序列化:指把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络节点(在网络上传输)。这个过程称为序列化。通俗来说就是将数据结构或对象转换成二进制串的过程。

  反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象模型的过程。也就是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。

序列化是干什么的,简单说,就是把保存在内存中的对象的各种状态(实例变量,不是方法),给写到硬盘中;也可以再从硬盘中,将他读出来。

为什么要有序列化呢?

实现不同jvm之间共享实例对象,网络传输的时候会用到。公司大佬告诉我,平时我们调接口,传输对象数据,其实也需要序列化,这样一旦中间出什么问题,那么数据就可以还原了。

但是有些东西,不能序列化,比如说密码,不能暴露出来,那么transient关键字就派上用场了,属性里加上这个关键字,那么这个属性就不会被写出,具体为什么,我就不研究了。

贴上我觉得写的很好的关于序列化的链接

http://blog.csdn.net/dreamtdp/article/details/15378329

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值