【你问我答】Java中什么是序列化和反序列化?

问题描述:

Java中什么是序列化和反序列化?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!

你问我答问题汇总:点击进入

------------
#我也有问题想询问牛友,怎么办?

欢迎私信@筱茜 说明你的问题,将根据问题具体情况排期进入【你问我答】专场~
私信请注明参与【你问我答】专场哦~

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!
#悬赏#
全部评论
定义: 序列化:把对象转换为字节序列的过程称为对象的序列化 反序列化:把字节序列恢复为对象的过程称为对象的反序列化 作用: 内存和外存的转化传递:把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原到内存中。 网络通信传递:当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。 实现方式: ObjectInputStream类中的public final void writeObject(Object x) throws IOException方法 ObjectOutputStream类中的public final Object readObject() throws IOException, ClassNotFoundException方法 注意事项: 一个类的对象要想序列化成功,必须满足两个条件:该类必须实现 java.io.Serializable 对象。 该类的所有属性必须是可序列化的。如果有一个属性不是可序列化的,则该属性必须注明是短暂的。
点赞 回复 分享
发布于 2019-05-28 13:21
序列化简单来说就是将对象转化为可以传输或存储的数据,而这些数据可以反序列化为原来的对象。java的序列化方式不仅限于java自带的serialzable,也可以是阿里开源的fastjson,谷歌的protobuf等等。
点赞 回复 分享
发布于 2019-05-28 13:34

相关推荐

06-03 19:56
门头沟学院 Java
建信融通有没有约一面的?到底是不是半结构化面试?附一篇拼多多面经1.使用Redis解决集群模式下的session共享问题,是把session存在Redis里了吗?我说存的是用户信息,不是session2.那你请求传过来的是什么?key是UUID+用户id,3.那你怎么知道传过来什么呢?我说登录后返回一个token,放在请求头的authorization里4.前端是你写的吗?不是5.那你怎么通过redis template获取数据?就是通过redis直接去呀,根据uuid+用户id6.为什么要用随机值?就是加一个校验机制二、分布式锁1.一人一单集群下分布式锁是怎么用的?Key为用户id + 业务名,自定义分布式锁,或者用的是Redisson2.怎么实现的自定义锁,自定义和Redisson有什么区别Setnx,看门狗机制、重入比较难实现,用他封装好的3.看门狗机制解决什么问题?超时释放4.反问能解决超时释放吗?能,说到了判断锁是否被持有5.如何判断锁是否被持有不知道6.都要用 用户id吗?不是,根据业务需求来,如果是库存超卖,那应该是商品id+业务三、Rabbitmq1.我看你第二个项目说用到了rabbitmq,你对几个消息队列的中间件有什么了解,他们有什么区别?说了rabbitmq 和 rocketmq,说了rocket可能更加可靠2.消息队列可靠是什么意思 ?保证消息被消费,消息不丢失3.什么情景 rocketmq能做到,rabbitmq不能做不知道四、Zset1.为什么要用zset,不用其他的数据结构我说压缩列表和跳表2.什么情况下是跳表什么情况下是压缩列表设置  长度  1283,为什么要从压缩列表换成跳表增删的性能4.增删性能好的数据结构很多,为什么用跳表我说相比于链表,跳表可以实现范围查询5.实现范围查询,为什么不用B+树?B+树空间太大五、MySQL1.mysql熟悉吧?还可以2.Mysql都用到了什么锁表级锁、行级锁3.什么情况用表级锁、什么情况用行级锁表结构变化才用表级锁,一般情况只用行级锁4.行级锁又会锁那几行,举例一下不知道5.事务了解吧,都有哪几种事务?开始吟唱6.它们的实现有什么不同?锁和MVCC机制,开始吟唱7.不可重复读是什么问题?开始吟唱8.在开发中,经常用读已提交是为什么?你知道吗?不太依赖事务追求性能六、JVM1.G1 回收器知道吗?2.你了解哪些回收机制?七、计算机网络1.滑动窗口是如何进行拥塞控制的?拥塞窗口:1.慢启动,拥塞窗口从1个报文段开始,每收到一个ACK,指数增长(*2)直到达到慢启动阈值或者发生丢包(超时/重复ack)2.拥塞避免,当拥塞窗口大小大于等于 ssthresh(慢启动阈值),转为线性增长,避免窗口过大导致网络拥塞3.拥塞处理,丢包A.超时,严重拥塞,ssthresh置为 cwnd/2, cwnd(拥塞窗口)置为1,重新慢启动B.重复ack,轻微拥塞,触发快速重传/快速恢复,ssthresh置为cwnd/2,cwnd也减半后线性增长接收窗口:由接收方通过TCP头部通告,表示其剩余缓冲区大小发送窗口 = min(接收窗口,拥塞窗口),发送方在任意时刻可以连续发送但尚未收到确认的数据量,由接收窗口和接收窗口共同决定,确保数据发送既不会导致网络拥塞,也不会超过接收方的处理能力。2.HTTPS对比HTTP为什么是安全的?HTTPS = HTTP+加密+身份认证+完整性保护·加密传输(防窃听),HTTP以明文传输,攻击者可以直接截获通信内容;HHTPS使用SSL/TLS协议对数据进行加密(AES、RSA算法),即使被截获也无法解密·身份验证,HTTP无法验证服务器身份,攻击者可以伪造虚假网站;HTTPS通过数字证书(CA)验证网站的真实性,浏览器会显示锁图标,点击可查看证书信息,若证书无效,会提示警告·数据完整行,HTTP数据在传输中可能被修改(如插入广告或者恶意代码),而HTTPS使用消息认证码(MAC)或者哈希校验,确保数据未被修改。  原理:TLS协议会为数据生成唯一指纹,接收方校验指纹是否匹配。手撕算法1.求链表的公共节点2.合并两个有序链表
查看4道真题和解析
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务