day 14

序列化与反序列化

序列化

将对象转化成特定格式的字符串文件(字节文件)叫做序列化

1.一个类要想实现序列化,必须实现serializable接口

2.序列化用途

​ 1)把对象的字节序列永久地保存到硬盘上,通常放在一个文件中;

​ 2)在网络上传送对象的字节序列

3.序列化ID的作用:

​ 序列化ID起着关键的作用,java序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的

反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较

如果相同认为一致,可以进行反序列化,否则就会报序列化版本不一致的异常

transient关键字

//transient透明的,序列化的时候不予考虑

transient int no = 1;

实现接口:java.io.Serializable

try{
User u = new User();
u.setName("zs");
u.setAge(11);
File file = new File("D://siTu/test/from");
OutputStream in = new FileOutputStream(file);
ObjectInputStream objin = new ObjectOutputStream(in);
objin.writeObject(u);
objin.close();
in.close();
}catch(){ }

反序列化

将特定字节文件转化为对象叫做反序列化

计算机网络

实现通信条件

1)IP协议

Internet Protocol,为计算机网络相互连接进行通信而设计的协议

2)IP地址

IP地址具有唯一性

范围0.0.0.0-255.255.255.255

本计算机IP地址:127.0.0.1或者0.0.0.0

3)端口号

包括物理端口和逻辑端口wan(广域网)lan(局域网)

物理端口:用于连接物理设备之间的接口(服务器在网络中的地址)

逻辑端口:逻辑上用于区分应用程序(服务)的端口(应用程序在服务器上的地址)

端口号只有整数:0-65535(2^16-1)

系统端口号:0-1023(2^10-1)

登记端口号:1024-49151 程序

客户端口号:49152-65535(子程序如qq插件)

http:80网络通信

ftp:21文件传输**

telnet:23

tomcat:8080java项目容器

Mysql:3306数据库

reids:6379非关系型数据库

nacos:8848注册中心

TCP/IP协议 传输控制协议 负责传输

五层计算机网络

应用层:软件所处层http协议/DNS/FTP/HTTPS

​ 网络服务与最终用户的一个接口

传输层:tcp协议 UDP硬件

​ 定义传输数据的协议端口号,以及流程控制和差错校验

网络层:ip协议

​ ICMP/IP(IPv4 IPv6)ARP PARP

数据链路层:物理端口

​ 建立逻辑链接,进行硬件地址寻址,差错校验等功能

物理层:服务器

​ 建立.维护.断开物理连接(由底层网络定义协议)

三次握手和四次挥手

TCP 建立连接 三次握手

​ TCP是面向连接的通信协议。通过三次握手建立连接

通过四次挥手断开连接

其他具体计算机网络相关见网盘内容

链接: https://pan.baidu.com/s/12DI9Oh4CwYhbWVDldUUjPw?pwd=1234 提取码: 1234 复制这段内容后打开百度网盘手机App,操作更方便哦

day14 I/O流——序列化与反序列化 & 计算机网络五层架构 & TCP的建立连接与断开连接的更多相关文章

  1. Properties-转换流-打印流-序列化和反序列化-Commons-IO工具类

    一.Properties 类(java.util)     概述:Properties 是一个双列集合;Properties 属于map的特殊的孙子类;Properties 类没有泛型,propert ...

  2. 16 IO流(十三)——Object流 序列化与反序列化

    Object流.序列化与反序列化 Object流是将 可序列化的对象 进行序列化与反序列化的流. 可序列化的对象:使用关键字Serializable修饰,表示这个对象可以进行序列化与反序列化. 序列化 ...

  3. 序列化和反序列化的几种方式(JavaScriptSerializer 、XmlSerializer、DataContractSerializer)(一)

    JavaScriptSerializer 类 为启用 AJAX 的应用程序提供序列化和反序列化功能. 命名空间:   System.Web.Script.Serialization 程序集:  Sys ...

  4. 计算机网络知识之TCP/IP协议簇

    OSI参考模型 OSI的来源         OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网 ...

  5. java 21 - 13 IO流之序列化和反序列化

    序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输.对象 -- 流数据(ObjectOutputStream) 构造方法:ObjectInputStream(InputStream in) ...

  6. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  7. (21)IO流之对象的序列化和反序列化流ObjectOutputStream和ObjectInputStream

    当创建对象时,程序运行时它就会存在,但是程序停止时,对象也就消失了.但是如果希望对象在程序不运行的情况下仍能存在并保存其信息,将会非常有用,对象将被重建并且拥有与程序上次运行时拥有的信息相同.可以使用 ...

  8. Java IO详解(六)------序列化与反序列化(对象流)

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

  9. 【Java IO流】对象的序列化和反序列化

    对象的序列化和反序列化 1)对象序列化,就是将Object对象转换成byte序列,反之叫对象的反序列化. 2)序列化流(ObjectOutputStream),是字节的过滤流—— writeObjec ...

  10. Java基础IO流(四)序列化与反序列化

    对象的序列化与反序列化: 对象的序列化,就是将Object转换成byte序列,反之叫对象的反序列化. 序列化流(ObjectOutInputStream),是过滤流 -------writeObjec ...

随机推荐

  1. Python-Django模板

    前面将hello world输出给浏览器,将数据与 视图 混合在一起,不符合 MVC思想. 模板就是一个文本,用来分离文档的表现形式和内容. 在templates目录下创建一个html模板 然后需要向 ...

  2. Centos7.6内核升级

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483766&idx=1&sn=4750fd4e ...

  3. portainer 1.24.2 升级到 portainer-ce 最新版

    官方升级步骤文档: https://docs.portainer.io/v/ce-2.9/start/upgrade/docker 若是现在的版本是 portainer-ce 2.0.0 ,看Opti ...

  4. docker相关总结

    Docker 的相关使用记录 一.安装docker linux环境使用yum命令安装docker 第一步:确保自己的虚拟机没有安装过docker,如果安装过的需要将原先的docker进行卸载,命令如下 ...

  5. 手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)

    前言 今天我们一起来使用LabVIEW AI视觉工具包快速实现图像的滤波与增强:图像灰度处理:阈值处理与设定:二值化处理:边缘提取与特征提取等基本操作.工具包的安装与下载方法可见之前的博客. 一.图像 ...

  6. .NET 反向代理 YARP 代理 GRPC

    前面的 YARP 文档中,介绍了怎么去代理 http,和如何根据域名转发,而在现在微服务的应用是越来越来多了,服务间的调用依靠 http 越来越不现实了,因为 http 多次握手的耗时越发的影响应用的 ...

  7. sql中更换函数REPLACE

    update <表名> ser <更换的列名> replace(<更换的列名>,'<更换前的对象>','<更换后的对象>') 例 updat ...

  8. 学习记录-Python的局部变量和全局变量

    目录 1 定义 2 作用域的重要性 2.1 全局作用域中的代码不能使用任何局部变量 2.2 局部作用域中的代码可以访问全局变量 2.3 不同局部作用域中的变量不能相互调用 2.4 在不同的作用域中,可 ...

  9. 1.MongoDB之服务启动

    1. 编写docker-compose.yaml文件 version: "3" services: mongo: image: mongo:4.2.6 ports: - 27017 ...

  10. Vue学习之--------组件自定义事件(绑定、解绑)(2022/8/21)

    文章目录 1.基础知识 2.代码实例 2.1 App.vue 2.2 school.vue 2.3 student.vue 3.测试效果(略) 4.实际应用(在组件化编码实战三的基础上改进) 4.1 ...