深入分析Java Web技术内幕(三)
来源:互联网 发布:淘宝pr剪切教程 编辑:程序博客网 时间:2024/06/09 15:50
Java 的I/O类库的基本结构
基于字节操作的I/O接口:inputStream和OutputStream基于字符操作的I/O接口:Writer和Reader基于磁盘操作的I/O接口:File基于网络操作的I/O接口:Socket
前两组主要是传输数据的数据个数,后两组主要是传输数据的方式。
不管是磁盘和网络传输,最小的存储单元都是字节
标准访问文件方式
访问文件:调用read()接口, 操作系统检查在内核的高速缓存中有没有需要的数据,如果已经缓存,返回,没有则从磁盘中读取,然后缓存在操作系统的缓存中。
写入文件:write()接口,将数据从用户空间复制到内核地址空间的缓存中。完成
什么时候写入磁盘由操作系统决定,除非显式调用sync同步命令。
直接I/O的方式
应用程序直接访问磁盘数据,而不经过操作系统内核数据缓冲区。目的:减少数据从内核空间缓存到用户空间缓存的数据复制操作
同步访问文件方式
数据的读取和写入都是同步操作的。
异步访问文件的方式
当访问数据的线程发出请求之后,线程会接着去处理其他事情
内存映射的方式
操作系统将内存中的某一块区域与磁盘中的文件关联起来,当要访问内存中的数据时,转换为访问文件中的数据。 目的:减少数据从内核空间缓存到用户空间缓存的数据复制操作
Java序列化技术
Java序列化就是将一个对象转化成一串二进制表示的字节数组,通过保存或转移这些字节数据来达到持久化的目的。
反序列化则是将这个字节数组再重新构造成对象,但必须
有原始类作为模板,才能还原。
总结:
1. 当父类基础Serializable接口时,所有子类都可以被序列化。
2. 子类实现了Serializable接口,父类没有,父类的属性不能被序列化,
但是在子类中属性仍能正确序列化。
3. 如果序列化的属性是对象,则这个对象也必须实现Serializable接口,否则会报错。
4. 在反序列化时,如果对象的属性有修改或删减,则修改的部分属性会丢失,但不会报错。
5. 在反序列化时,如果serialVersionUID被修改,则反序列化时会失败
6. 在多语言环境下,还是要尽量存储通用的数据结构,如JSON或者XML结构数据。
影响网络传输的因素
网络带宽:一条物理链路在1s内能够传输的最大比特数,b/s
传输距离:数据在光纤中要走的距离
TCP拥塞控制
Socket描述计算机之间完成相互通信的一种抽象功能
NIO
NIO关键类:Channel和Selector
Channel比作交通工具
Selector比作运行调度系统,负责监控
网络I/O优化
- 减少网络交互的次数
- 减少网络传输数据量的大小:将数据压缩后再传输
- 尽量减少编码: 因数据都是字符 需要转字节
同步与异步:
同步:一个任务的完成
- 深入分析java web技术内幕----读书笔记(三)
- 深入分析Java Web技术内幕(三)
- 深入分析java web 技术内幕_笔记_三
- 《深入分析Java Web技术内幕》读后感
- 读《深入分析Java Web技术内幕》
- 深入分析Java Web技术内幕
- 深入分析Java Web技术内幕
- 《深入分析Java Web技术内幕》读书笔记
- 《深入分析Java web技术内幕》笔记
- 深入分析Java Web技术内幕
- 深入分析Java Web技术内幕 笔记
- 深入分析Java Web技术内幕pdf
- 深入分析Java Web技术内幕(修订版)
- 深入分析Java Web技术内幕 (一)
- 深入分析java web技术内幕----读书笔记(一)
- 深入分析java web技术内幕----读书笔记(二)
- 深入分析java web技术内幕原文(二)
- 深入分析java web技术内幕----读书笔记(四)
- 2017年——身处大学的你我Ta
- 1.windows下redis服务+java连接+常用命令
- jdk1.8新的功能特性
- 【Android】RxJava的使用(二)Action
- HDU 4803 Poor Warehouse Keeper(贪心+注意精度) 13区域赛
- 深入分析Java Web技术内幕(三)
- 算法总结JS版(四)—— 希尔排序(Shell Sort)
- Python3_模拟登录
- XML文件怎么添加注释
- DB2“静默”状态与解除
- Yang不等式与Hölder不等式
- 【Android】RxJava的使用(三)转换——map、flatMap
- ubuntu16.04 +NVIDIA驱动+cuda8.0+cudnn+andaconda+tensorflow(GPU版)+Spyder+pycharm全套配置
- linux上安装软件