Java中的对象流 ObjectInputStream 和ObjectOutputStream

ObjectInputStream和ObjectOutputStream是Java中用于对象序列化和反序列化的重要工具,它们属于Java I/O库中的对象流。

基本功能:

  1. ObjectOutputStream:主要用于将Java对象(必须是实现了Serializable接口的类的对象)写入输出流中,实现对象的持久化存储或网络传输。它提供了writeObject(Object obj)方法,用于将对象写入输出流。
  2. ObjectInputStream:与ObjectOutputStream相反,它用于从输入流中读取Java对象,实现对象的反序列化。它提供了readObject()方法,用于从输入流中读取并返回对象。

序列化与反序列化:

  1. 序列化:将对象的状态信息转换为字节序列的过程,以便可以持久保存(如写入文件或保存到数据库)或通过网络传输到另一个虚拟机。
  2. 反序列化:将字节序列恢复为对象的过程。也就是说,从字节序列中读取对象的状态信息,并使用这些信息重新构造对象。

特点:

  1. ObjectInputStream和ObjectOutputStream不仅可以处理基本数据类型的数据,还可以处理Java对象。
  2. 序列化的字节序列是平台无关的,可以在不同的Java虚拟机之间传输。
  3. 只有实现了Serializable接口的类的对象才能被序列化。如果对象的属性是对象,那么这些属性的类也必须实现Serializable接口。
  4. 序列化时,默认会将对象的所有非static和非transient修饰的成员进行序列化。如果希望某些成员不被序列化,可以使用transient关键字进行修饰。

注意事项:

  1. 读写顺序要一致:在序列化和反序列化时,对象的成员变量的写入和读取顺序必须一致。
  2. Serializable接口是一个标记接口,没有任何方法需要实现,只是用于告知Java虚拟机该对象可以被序列化。
  3. 序列化具有可继承性,即如果某个类实现了Serializable接口,那么它的所有子类也默认实现了Serializable接口。

使用场景:

  1. 当需要将对象的状态保存到文件中时,可以使用ObjectOutputStream。
  2. 当需要从文件中恢复对象的状态时,可以使用ObjectInputStream。
  3. 在网络编程中,当需要在不同的Java虚拟机之间传输对象时,也可以使用ObjectOutputStream和ObjectInputStream。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java SE】超详细讲解String类

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 初步认识String2. String类的常用方法2.1 字符串构造2.2 String对象比较2.2.1 比较是否引用同一个对象2.2…

【Pandas】深入解析`pd.read_json()`函数

【Pandas】深入解析pd.read_json()函数 🌈 欢迎莅临我的个人主页👈这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地!🎇 🎓 博主简介&#x…

unity开发Hololens,使用unity自带的UGUI

hololens 使用UGUI 新建画布,添加组件, 画布模式改成WorldSpace,这样在能在3D场景里 随意的移动位置, 添加NearIteractionTouchaBleUnityUI、CanvasUtility组件 EaventsToReceive改成Pointer, 这样,UGUI的…

TC3xx分析--如何提高系统运行效率(2)

目录 1.概述 2.限定符对于代码的影响 3.小结 1.概述 上文TC3xx分析--如何提高系统运行效率(1)-CSDN博客讲解了Tasking中lsl的某些关键定义,简述了Tricore寻址模式,接下来我们继续看,不同memory限定符对于代码的影响。 2.限定符对于代码的…

振弦式位移计在各类工程中的应用

振弦式位移计,作为一种高精度、高可靠性的测量工具,在各类工程中发挥着至关重要的作用。它通过测量弦的振动频率来间接得出结构的位移变化,为工程师和科学家们提供了精确的数据支持,从而确保工程的安全性和稳定性。 点击输入图片描…

ASTRONEER异星探险家服务器开服多人联机

1、购买后登录服务器 进入控制面板后会出现正在安装的界面,安装大约5分钟(如长时间处于安装中请联系我们的客服人员) 2、获取数字IP地址 使用IP 地址查询网站将服务器IP地址填入后点击查询(查询的时候将地址冒号后方的数字以及冒…

五种不寻常的身份验证绕过技术

身份验证绕过漏洞是现代web应用程序中普遍存在的漏洞,也是隐藏最深很难被发现的漏洞。 为此安全防护人员不断在开发新的认证方法,保障组织的网络安全。尽管单点登录(SSO)等工具通常是对旧的登录用户方式的改进,但这些技术仍然可能包含严重的…

Java 阻塞队列与生产者消费者模型

一、阻塞队列 阻塞队列是⼀种特殊的队列,其也遵守队列 "先进先出" 的原则; 阻塞队列是⼀种线程安全的数据结构,并且具有以下特性: 当队列满的时候,继续入队列就会阻塞,直到有其他线程从队列中…

JWT身份验证相关安全问题

前言:工作中需要基于框架开发一个贴近实际的应用,找到一款比较合适的cms框架,其中正好用到的就是jwt做身份信息验证,也记录一下学习jwt相关的安全问题过程。 JWT介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行…

如何遍历并处理不平衡的Python数据集

目录 一、引言 二、不平衡数据集的概念与影响 三、处理不平衡数据集的策略 重采样策略 集成学习方法 代价敏感学习 一分类方法 四、Python工具与库 五、案例分析与代码实现 案例一:使用imbalanced-learn库进行上采样 案例二:使用scikit-learn…

基于L1范数惩罚的稀疏正则化最小二乘心电信号降噪方法(Matlab R2021B)

L1范数正则化方法与Tikhonov正则化方法的最大差异在于采用L1范数正则化通常会得到一个稀疏向量,它的非零系数相对较少,而Tikhonov正则化方法的解通常具有所有的非零系数。即:L2范数正则化方法的解通常是非稀疏的,并且解的结果在一…

CentOS 8 (stream) 迁移到 其他开源linux almalinux

Centos8 迁移到 almalinux 只需要下载迁移脚本即可 #wget -c https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh #chmod x almalinux-deploy.sh //对于centos Stream迁移需要加上降级参数 almalinux-deploy.sh --downgrade

vue 笔记02

目录 01 事件修饰符 02 按键修饰符 03 v-bind属性 04 vue-axios的基本使用 05 vue的生命周期 06 vue生命周期涉及到的其他的知识点 01 事件修饰符 vue的事件修饰符 事件名称.修饰符1.修饰符2...事件驱动函数 stop 阻止冒泡修饰符 prevent 阻止默认行为 once 当前事件只触…

Shell的条件语句

一 条件测试 1.1文件测试与整数测试 1.2字符串测试与逻辑测试 二 If语句 2.1If单分支语句 2.2If双分支语句 2.3If多分支语句 三 Case分支语句 四 总结 一 条件测试操作 1.1文件测试 要使shell脚本程序具备一定的"智能",面临的第一个问…

【信息学奥赛】字典的键和值对换

【信息学奥赛】字典的键和值对换 💖The Begin💖点点关注,收藏不迷路💖 输入一个字典,要求将该字典的键和值对换。(注意,字典中有键的值是重复的) 输入: 一行&#xff0…

信息系统项目管理师0137:输出(8项目整合管理—8.9结束项目或阶段—8.9.3输出)

点击查看专栏目录 文章目录 8.9.3 输出8.9.3 输出 项目文件(更新)可在结束项目或阶段更新所有项目文件,并标记为最终版本。特别值得注意的是,经验教训登记册的最终版本要包含阶段或项目收尾的最终信息。最终版本的经验教训登记册可包含:效益管理、项目评估的准确性、项目和…

PostgreSQL教程

引言 PostgreSQL,简称Postgres,是一个强大、开源的对象关系型数据库管理系统(ORDBMS)。它因其高性能、稳定性和灵活性而广受欢迎。本文将详细介绍PostgreSQL,从安装、基本操作到高级功能,帮助你全面掌握这…

修改vuetify3的开关组件v-switch在inset模式下的大小

<v-switchv-model"model":label"Switch: ${model.toString()}"hide-detailsinset></v-switch>使用方式1&#xff1a;本页面使用 本页面中使用&#xff0c;必须要含有lang“scss” scoped&#xff0c;才会生效 <style lang"scss"…

基础漏洞系列——CSRF跨站请求伪造

简介&#xff1a; 跨站请求伪造&#xff08;英语&#xff1a;Cross-site request forgery&#xff09;&#xff0c;也被称为 one-click attack或者 session riding&#xff0c;通常缩写为 CSRF或者 XSRF&#xff0c; 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操…

【会议征稿,JPCS出版】2024年航空航天与力学国际学术会议(ICAM 2024)

2024年航空航天与力学国际学术会议&#xff08;ICAM 2024&#xff09;将于2024年7月12-14日在中国沈阳举办。会议由东北大学机械工程与自动化学院主办&#xff0c;吉林大学机械与航空航天工程学院承办&#xff0c;大连理工大学、沈阳航空航天大学、沈阳建筑大学、沈阳工业大学、…