知识比较零碎,仅做应付考试
第一章入门
第二章socket
socket我感觉就是CS架构中的一条链路
延迟等待
相关方法
半关闭
很有必要背一个简单客户端与服务器端
背一个流操作很有必要
第三章SERVER SOCKET
构造方法
port置为0是匿名端口
感觉只要backlog的参数值非法或没有就是操作系统决定
这个构造方法适用于多个ip
accept方法的用法
多线程跳过了,不想看了@-@
56两问在线程优缺点那里
第四章非阻塞式通讯
阻塞式操作系统的概念
常见的阻塞原因:
- sleep
- wait
- accept
- 输入输出流
- connect
- 同步代码
- IO操作/远程通信
- 关闭延迟时间等
阻塞式的局限性
局限就是频繁又虚拟机开辟内存空间
频繁调度cpu
非阻塞原理
这个概念真的让人头大
非阻塞代码以后看吧。。。
以后他来了
postion类似于指针,capacity是总的缓冲区,limit表示之后的不属于缓冲区
读操作之后position和limit变化
写的时候要put(buffer.getbyte())
读的时候要flip
所以上述代码就是在使用allocate在jvm建立缓冲区
allocatedirect是将重要的、长时间使用开辟,虽然效率高,但占用内存空间
起到一个链接作用,并不直接返回数据
当下的channel就是这样的,之前要么是cpu直接控制io
要么是DMA管理io
再有channel下就可以异步进行操作
第五章:创建非阻塞式HTTP
HTTP请求分为请求方式,请求头,请求正文
get和post的区别什么的记一下,一个获取一个提交表单,一个数据多,一个数据少
http响应也分为三部分,http版本 、状态,响应头,响应正文
具体代码不看了
第八章基于UDP的数据报和套接字
在我这前写的两个udp交互中一看到看datagramsocket只负责接受和发送。
而真正的传输是通过datagrampacket
发送只能是字节序列,到了接收方再改回来
后面的非阻塞我就不看了
第九章序列化与反序列化
自己建的Customer类继承Serializable接口才能完成序列化与反序列化
静态变量不会序列化
反序列化不会调用构造方法,只会从内存中直接取数据
externalizable接口在反序列化时会使用不含参的构造方法
JDBC
第十五章 jsse
记住
Jsse:java secure socket extension java安全套接字扩展
SSL:server socket layer
TLS: transport Layer Security