笔记整理(一)

把大一,大二,大三学习时的笔记整理下,有的是课本上的,还有的记不清了

1.字节解码成字符,字符编码成字节

2.序列化与持久化

对象序列化(实现Serializable接口),把对象序列化成流(或者反过来),方便存储即持久化(IO.JDBC)

多语言环境下,java序列化后存储的对象很难用其他语言还原出来,尽量使用通用的数据结构,json.xml.数据库

3.网络IO的数据传输问题

两条渠道:物理渠道(物理链路),精神渠道(通信协议)

工作机制:

程序A---->socket----->TCP----->IP------->端口------->应用程序B

数据传输:

OS(OutputStream)IS(InputStream),

SendQ<=====>RecvQ写入和读取均是通过OS和IS的缓存区域完成的,当RecvQ满了时,OS将会阻塞,知道RecvQ有足够的空间可以容纳

OS(SendQ)发送的数据,由于Client与Server两端均可以发送和接收收据,因此网络IO,不同于磁盘IO的是网络IO要有一个数据读取和写入的

协调过程,从而避免双方同时发送数据

4.字符转换

将多个单字节的字符通过编码来转换成一个多字节字符的过程中(单字节字符到多字节字符)减少的仅仅是字符串的长度,并没有减少字节数量

所以同样一个字符采用不同的编码进行存储,字节数会不同,如一个汉字再gbk里占两个字节,在utf-8里占三个字节

原文地址:https://www.cnblogs.com/tele-share/p/9470806.html