Java网络编程

1、网络层的解析与协议

URL解析:

域名的层级:

 

DNS递归查询,获取服务器ip:

 

 DNS迭代查询,获取服务器ip:

 根域名服务器有限且相对固定,所以各大运营商都会内置根域名的地址,因此不需要单独查询根域名地址。

分层及协议:

 2、java IO

 基本字符流、复杂字符流:

 基本字节流、复杂字节流:

 

 java.io中的设计模式

  • 装饰器模式:BufferedInputStream 构造需要传入一个InputStream的实现类,比如传入FileInputStream类,既在FileInputStream的现有功能上,扩展了缓冲区。

3.同步/异步,阻塞/非阻塞

同步与异步关注的是消息通信机制,所谓同步,就是由“调用者”主动等待这个“调用”的结果。

异步则相反:“调用”在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立即得到结果。而是在“发出后”,“被调用者“通过状态,来通知调用者,或通过回调函数处理这个调用。

举例:男生给女生表白,如果是同步通信机制,女生会思考一下,然后会给出思考的结果,就是是否接受;而异步通信机制,女生会说,等我考虑几天,考虑好了我会给你发短信告诉你。

阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态

阻塞:当数据没有准备的时候阻塞,往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否則一直等待在那里。

非阻塞:当我们的进程访问我们的数据缓冲区的时候,如果数据没有准备好则直接返回,不会等待。如果数据已经准备好,也直接返回。

阻塞调用:是指调用结果返回之前,当前线程被挂起。调用线程只有在得到结果之后才会返回。

非阻塞调用:是指在不能立即得到结果之前,该调用不会阻塞当前线程。

还是上面的例子,如果是阻塞调用,则表白过后,男生什么事也不做,就等着女生的返回结果;如果是非阻塞调用,则你完全不受是否收到回复,一直在做自己的事情。可见阻塞非阻塞是针对调用者(也就是此处表白的男生)来说的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值