JAVA的IO模型基于网络编程利弊分析

一、IO通俗理解

  • IO的过程

  • 思考①答案:文件句柄

  • 思考②答案:

    • 阻塞/非阻塞 IO(程序对内核空间数据拷贝到用户空间阶段的耗时操作的等待方式)
    • 同步/异步IO(程序对内核空间数据拷贝到用户空间阶段的耗时操作的处理方式)

二、Unix中定义的IO模型

  • 阻塞式IO模型

  • 非阻塞式IO模型(数据未准备好的时候 直接返回 数据准备好的时候 复制数据 此时是同步的)

  • IO复用模型(复用链路

三、网络编程与Socket

  • OSI模型

  • 网络通讯流程

  • Socket

  • Socket和应用程序中的IO的关系?

    • socket只是网络通讯模型中一层抽象的API
    • socket对象最多只是数据的一个承载体而已(或者说是一个FD)
    • JAVA中的socket只是fd的一种封装而已

四、JAVA的IO模型(BIO&NIO)

  • 概念

  • 实现

    • BIO(只能连接单客户端 想连接多客户端就得多加线程)

    • NIO


Java的IO模型基于网络编程利弊分析相关推荐

  1. Java的IO流与网络编程

    目录 一.概述 二.文件类(File) 1. File类的构造.获取属性 2. File类获取子文件或目录 3. File类文件重命名 4. File类的判断功能 5. File类创建.删除功能 三. ...

  2. JAVA的IO流 和网络编程 超详细每行代码都有备注

    IO流: {     文件的操作: f1.getAbsolutePath();//获取绝对路径               f1.getPath();//获取相对路径               f1 ...

  3. Linux网络IO模型及JAVA中IO模型

    文章目录 1.概述 2.Linux网络IO模型 2.1.阻塞IO模型 2.2.非阻塞IO模型 2.3.IO复用模型 2.3.1.select 2.3.2.poll 2.3.3.epoll 2.4.信号 ...

  4. 从网线到IO模型(网络基础整合)

    文章目录 网络基础 1.什么是协议,常见协议 2.网络应用设计模式 BS/CS优缺点 什么是C/S模式 什么是B/S模式 优缺点 3.分层模型(物数网传会表应) 4.以太网帧协议(为什么需要+报文分析 ...

  5. java自动化测试语言高级之网络编程

    java自动化测试语言高级之网络编程 文章目录 java自动化测试语言高级之网络编程 Java 网络编程 Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来 ...

  6. Java核心类库篇8——网络编程

    Java核心类库篇8--网络编程 1.七层网络模型 OSI(Open System Interconnect),即开放式系统互联,是ISO(国际标准化组织)组织在1985 年研究的网络互连模型. 当发 ...

  7. java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...

    20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...

  8. Java:计算机编程语言Java的简介、安装(编程环境/工具)、学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略

    Java:计算机编程语言Java的简介.安装(编程环境/工具).学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略 目录 Java的简介 1.Java的工作原理--基于Eclipse等编 ...

  9. java基础知识总结:基础知识、面向对象、集合框架、多线程、jdk1.5新特性、IO流、网络编程

    目录 一.基础知识: 二.面向对象 三.集合框架 四.多线程: 五.jdk1.5的新特性 六.IO流 七.网络编程: 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtua ...

最新文章

  1. php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...
  2. 史上最萌的统计学入门书,快来看看长啥样
  3. Zigbee通讯漫谈(初次见面)
  4. hdu 3721 树的最小直径
  5. 连续特征离散化方法介绍
  6. 华为nova5ipro的优缺点_华为nova5pro和nova5i的区别
  7. 函数幂计算机中怎么用,Excel中幂函数的操作使用
  8. how you can go to attend eap freely?
  9. 一篇文章教会你创建vue项目和使用vue.js实现数据增删改查
  10. nginx访问日志 logstash 配置文件实例2
  11. ANDROID开机动画分析
  12. clock gate cell
  13. HDU 1698 Just a Hook(线段树:区间更新)
  14. 苹果电脑Chrome浏览器截网页长图
  15. 寒霜系列引擎技术解析
  16. Windows 10微软拼音中添加自定义短语
  17. 写给XJTU计算机系大一大二的童鞋
  18. 15个好用的百度网盘搜索引擎
  19. java for 字母金字塔_扣丁学堂Java培训简述如何用C#随机数生成字母金字塔
  20. 质因子分解(Java)

热门文章

  1. 初学Python:银行金额数字转大写汉字
  2. 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 DP + 线段树 / SPFA
  3. 支付不重复订单号生成
  4. 萦绕在爱情深处最细微的感伤
  5. 中国人唯一不认可的成功
  6. USB描述符都是什么意思你看懂了吗?
  7. 第一次线上面试应该怎么办?
  8. command execution
  9. 超详细AI二维码制作教程:手把手教你如何用Stable Diffusion 生成一个创意二维码?
  10. Spring系列五:Spring怎么解决循环依赖