当前位置: 首页 > wzjs >正文

做网站需要写代码新闻最新消息今天

做网站需要写代码,新闻最新消息今天,杭州电商直播培训班,做网站采集内容系统级 IO 系统级 IO 是操作系统提供的输入输出接口 , 直接与硬件内核交互 . 不同操作系统的 系统级 IO 不同 . 流 流是 数据传输的抽象管道 , 定义数据如何输入输出 , 有流才能传输数据 . 本质是 封装 系统级 IO 的高级抽象 , 拥有自己的统一接口 ( iostream , InputStrea…

系统级 IO

系统级 IO 是操作系统提供的输入输出接口 , 直接与硬件内核交互 .

不同操作系统的 系统级 IO 不同 .

数据传输的抽象管道 , 定义数据如何输入输出 , 有流才能传输数据 . 本质是 封装 系统级 IO 的高级抽象 , 拥有自己的统一接口 ( iostream , InputStream 等) .

为什么要将系统级 IO 抽象成流 ?
  1. 设备无关性 : 对于文件 , 网络数据 , 内存等数据 , 流能够提供统一的操作接口 .

  2. 跨平台兼容 : 流将不同操作系统的系统级 IO 封装起来 , 使操作兼容不同平台 .

  3. 优化 : 流拥有缓冲区 , 类型检查 , 错误处理等优化机制 .

缓冲区

缓冲区内存中的临时数据存储区域 , 用于优化流的性能 , 减少系统调用次数 , 匹配网络和硬件读取访问的不同速度 .

B题 我才是奶龙 : 给你一组R、G、B的字符,判断其中是否恰好只有R、G。

缓冲区认识最深刻的时候是上学期新生赛的 B 题 , 学校机房设备的 Dev-C++ 编译器没有调整缓冲模式 , 导致我在这题的输入输出浪费了很多时间 .

缓冲模式
缓冲模式触发刷新条件应用
全缓冲缓冲区满文件 IO
行缓冲遇到换行符或缓冲区满控制台 IO
无缓冲立即输出我才是奶龙

纵向介绍

C scanf & printf

基于 stdio 库函数封装操作系统的系统级 IO , 速度极快 . 默认使用 stdio 缓冲 : 终端行缓冲 ; 文件全缓冲 . 可通过 setvbuf 修改缓冲模式和自定义缓冲区大小 .

#include<stdio.h> // #include<cstdio>
int main(){int n;scanf("%d", &n);printf("%d", n);int a[n];for(int i = 0; i < n; ++i){scanf("%d", &arr[i]);}for(int i = 0; i < n; ++i){printf("%d", arr[i]);}return 0;
}
C++ cin & cout

基于流对象 iostram , 通过操作符重载实现类型安全 . 默认与 C 风格 stdio 同步共享缓冲区 , 解除同步避免额外计算可以提升输入输出操作效率 .

操作符重载 : 在自定义类或结构体中重新定义语言内置操作符的行为 .

#include<bits/stdc++.h> // #include<iostream>
int main(){int n;cin >> n;cout << n;int arr[n];for(int i = 0; i < n; ++i){cin >> n;}for(int temp : arr){cout << temp;}return 0;
}
Java Scanner

基于 InputStream , 通过正则表达式分隔解析输入 . 多次小规模读取的效率较低 . 无法直接修改缓冲区大小 .

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();System.out.print(n);int[] arr = new int[n]; // int arr[n];无效for(int i = 0; i < n; ++i){arr[i] = scanner.nextInt();}for(int temp : arr){System.out.print(temp);}scanner.close();}
}
Java 格式化输出

基于 Formatter 的装饰器流 , 语法和 C 语言的 printf 类似 , 拥有类型安全 . 提供格式说明符对齐输出结构 .

装饰器模式 : 允许动态地向对象添加新的功能而无需修改原有类的代码 , 以组合代替继承的方式扩展对象行为 .

import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();System.out.printf("%d", n);String temp = String.format("%d", n); // 支持代码复用scanner.close();}
}
Java BufferedReader 类输入

基于 Reader , 使用缓冲优化减少系统调用次数 , 无类型安全 , 需要手动解析数据类型 . 可以直接在析构函数中直接指定缓冲区大小 .

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(bufferedReader.readLine());String[] input = br.readLine().split(" ");int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i] = Integer.parseInt(input[i]);}bufferedReader.close();}
}

横向对比

\printf/scanfcin/coutScannerJava格式化输出BufferedReader
性能极高 直接调用一般 需要关闭同步极低 正则匹配成本高较低 解析格式符成本高较高 批量读取 缓冲优化
类型安全 易出现未定义行为编译时推导类型运行时检查格式化字符串与参数强匹 手动解析字符串的具体类型
缓冲管理setvbuf 修改缓冲区大小和缓冲模式可自定义缓冲区 默认共享无 依赖底层流缓冲Scanner不可更改缓冲模式 默认 8196 Kb 缓冲 可调整大小

补充

底层流 是直接与数据源交互的原始数据通道 .

ScannerJava 格式化输出 依赖底层流缓冲 , 没有独立的缓冲管理能力 .

// 底层流是System.in 标准输入流 无缓冲
Scanner scanner1 = new Scanner(System.in);// 底层流是FileInputStream 字节流 无缓冲
FileInputStream fis = new FileInputStream("data.txt");
Scanner scanner2 = new Scanner(fis);// 底层流是BufferedReader 字符流 已缓冲
BufferedReader br = new BufferedReader(new FileReader("data.txt"));
Scanner scanner3 = new Scanner(br);
http://www.dtcms.com/wzjs/166969.html

相关文章:

  • wordpress 分类 评论网站优化有哪些技巧
  • 网站怎样做友情链接怎么做百度网页推广
  • 不是固定ip如何做网站营销推广方案ppt案例
  • 网站后台管理系统一般用户名是什么南京百度关键字优化价格
  • 如何免费做网站优化潍坊网站建设方案咨询
  • 扬州市住房和城乡建设网站百度seo排名如何提升
  • 济南网站建设分销商城安卓手机游戏优化器
  • 如何做输入密码进入网站流量大的推广平台有哪些
  • c 手机网模板网站电商运营推广
  • 房屋 哪个网站做的最好阿里云空间+1对1私人专属设计师
  • seo关键词快速提升软件官网百度seo多久能优化关键词
  • 阿里云建站百度收录吗seo百度seo排名优化软件
  • 网站 建设 后台管理程序成人职业培训机构
  • 百度网网站建设的目标推广学院seo教程
  • 学做网站去哪学网店推广联盟
  • 国内做外单的网站有哪些资料最新旅游热点
  • 北京网站建设工作室哪家好疫情防控最新信息
  • 村级网站建设 不断增强网站优化策划书
  • 长沙seo排名公司天津seo诊断
  • logo设计网站哪个好一些镇江百度关键词优化
  • 公司做的网站费用计入什么科目域名申请的流程
  • 移动端的网站模板个人建网站步骤
  • 建设个人博客网站南安网站建设
  • 建设公司怎么做网站运营做一个自己的网站
  • 做网站怎么兼职长沙百度快速优化排名
  • ftp网站备份百度指数数据分析平台
  • 深圳市建设工程质量检测网站网站的宣传推广方式
  • 做空间的网站搜索引擎排名google
  • 怎样获得做网站的客户厦门网站流量优化价格
  • 优惠券怎做网站免费推广引流软件