JavaWeb——IO、存储、硬盘、文件系统相关常识

news2025/1/31 8:22:55

目录

一、IO

1、定义

二、存储和硬盘

1、存储

2、硬盘

三、文件系统

1、文件

(1)、定义

(2)、分类

(3)、操作

2、树形结构和目录

3、路径

(1)、定义

(2)、分类


一、IO

1、定义

IO 是指文件的输入和输出,通常是磁盘等需要的接口。运行数据在内存中停留的地方就是CPU核心来执行时涉及到的数据交换的地方。

注:对象不同IO模式也不尽相同,可以分为磁盘IO模型和网络IO模型。

 

IO操作涉及到用户空间和内核空间的转换:

  • 内存空间分为用户空间和内核空间,也称为用户缓冲区和内核缓冲区
  • 用户的应用程序不能直接操作内核空间而是需要将数据从内核空间拷贝到用户空间才能使用
  • 无论是读操作还是写操作,都只能在内核空间中执行
  • 磁盘IO和网络IO请求加载到内存的数据都是先放在内核空间的

二、存储和硬盘

1、存储

存储是指将数据合理安全的保存到某些介质上并保证长时间有效的访问。

文件存储是指数据会以单条信息的形式存储在文件夹中,如果需要访问该数据可以通过相应的路径来查找对应的文件。

2、硬盘

硬盘一般是指电脑硬盘(计算机的主要存储设备),主要用来保存文件数据。

硬盘分为:有数据存储的空间和暂时没有数据存储的空间。

有数据存储的部分可以分为数据1、数据2等,每个数据又可以被分为文件1、文件2等。

文件就是对硬盘中数据的抽象概念,因此硬盘数据的读写就是对文件的读写问题,文件主要由OS + 文件系统统一管理。

硬盘和内存对比:

  • 内存速度比硬盘快
  • 内存空间比硬盘小
  • 内存成本比硬盘贵
  • 内存持久化差,掉电后数据丢失

三、文件系统

1、文件

(1)、定义

狭义上的文件是指:针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念,就类似办公桌上的一份份真实的文件一般。

文件除了有数据内容之外,还有一部分信息,例如文件名、文件类型、文件大小等并不作为文件的数据而存在,我们把这部分信息可以视为文件的元信息。

(2)、分类

文件可以被分为文本文件、二进制文件和其他文件:

  • 文本文件:存储的是文本,文本文件的内容是由ascii字符构成的。文本文件里存储的数据就是遵守ascii或者其他字符集编码所得到的文件但本质上存的是字符。文本文件可以是 .txt类型、.java类型、.c类型等。
  • 二进制文件:存储的是二进制数据,没有任何字符集的限制。二进制文件可以是 .class类型、.exe类型、.jpg类型、.mp3类型等。

(3)、操作

文件操作系统:创建文件、删除文件、重命名文件、创造目录

文件内容操作:针对文件内容进行读和写

2、树形结构和目录

随着文件的增多,我们可以按照层级结构进行管理文件,也就是相当于数据结构中的树形结构。这样一种专门用来存放管理信息的特殊文件诞生了,也就是我们平时所谓的文件夹或者目录的概念。

文件是以树形结构进行管理的,无论是目录或者文件都只是树上的一个结点,一个结点可以有多个孩子。但这颗文件树只是逻辑结构,而不是硬盘上的物理结构

3、路径

(1)、定义

在文件系统中定位一个唯一的文件可以从树型结构的角度来看,树中的每个结点都可以被一条从根开始,一直到达的结点的路径所描述,而这种描述方式就被称为文件的绝对路径。因此路径就是文件系统上一个文件/目录的具体位置

注:目录(计算机专业术语)==文件夹(通俗说法) 

(2)、分类

路径可以被分为绝对路径和相对路径两种:

  • 绝对路径:从一棵树的根结点处出发的路径,即从盘符开始一层一层往下找,最后总是能够确定一个唯一的文件。
  • 相对路径:从当前所在的位置出发的路径,即从某个特定目录出发,一层一层往下找。但当前位置位置改变路径就可能失效。

注:文件系统上,任何一个文件对应的路径是唯一的,不会存在两个相同的路径但是文件不同的情况。在Linux中可能存在一个文件有两个不同的路径但能找到它,在windows上不存在。windows上可以认为路径和文件是一一对应的,路径就相当于一个文件的双方标识。

路径表示中的两个特殊的符号:“.”和“..”。

  • “.”表示从当前位置开始
  • “..”表示回到当前位置的父结点开始。但该符号在根目录下使用该符号是没效果的,根没有父节点。

注:这两个符号一般在相对路径中使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433502.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

elementui是怎么做表单验证的?

文章目录 前言elementui是怎么做表单验证?步骤 一、 表单验证校验代码?二、el-button提交验证代码2.validate方法深入了解1. 有参数2. 无参数 总结 前言 在项目开发中,我们经常会遇到表单保存的功能,在表单保存前,常常…

Salesforce如何防止黑客攻击和数据泄露?了解他们的安全措施!

安全性一直是Salesforce密切关注的问题。Google的安全浏览报告指出,2022年网络钓鱼网站的数量增加了80%。面对着黑客攻击、安全漏洞、数据泄露等不安全事件频发,实施更强大的安全措施比以往更加重要。 调查显示,电子邮件目前是网…

阿里巴巴图标,font-family字体样式

阿里巴巴官网:https://www.iconfont.cn/ 如有需要,请注意到文章最后的问题。 一,图标 1,搜索关键词,点击图标 -> 加入购物车 -> 添加到项目 2,两种方式 (1)选择 Font cla…

推荐一个好工具,可以替代 swagger 生成文档

Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 S…

SpringBoot扫包排除指定包(配置文件形式)

1、背景​ 在有些时候,不同环境可能需要用代码不同模块的能力,但是不同环境的项目包是一致的。这块我们想到的最简单的办法是在maven打包的时候打不同的模块,但是这样往往需要出多个包,虽然这种方式是正路但运维同学嫌麻烦。第二种…

Java面试题--MySQL索引

一. 索引介绍 MySQL的索引是一种数据结构,它可以帮助MySQL快速定位需要访问的记录。索引可类比于一本书的目录,通过它可以快速找到某个特定的记录。 MySQL支持多种类型的索引,每种索引都有其优势和局限性,常用的包括&#xff1a…

python类型转换

我们就想那我们目前接触到的三种类型做一下转换 分别是 字符串 浮点数 正整数 可能会有刚接触编程的小伙伴在想 没事类型转换什么呢? 其实在实际开发中 这东西用的不要太多 根据我们目前认识的类型 先用到三个方法 我们编写代码 String_int str(111); print(St…

初阶数据结构——时间复杂度和空间复杂度

目录 算法效率算法的复杂度 时间复杂度时间复杂度的概念习题 空间复杂度空间复杂度的概念习题 什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 什么是算法? 算法…

java+ssm603企业人事档案管理系统带前端springboot

人事管理系统的设计与实现采用Spring、SpringMVC和MyBatis作为主体框架,系统设计遵循界面层、业务逻辑层和数据访问层的Web开发三层架构。采用B/S结构,使得系统更加容易维护。人事管理系统的设计与实现主要实现角色有管理员和用户,管理员在后台管理资料文件模块、员工模块、文件…

深度相机初体验:Hello World

当我的组长给了我一个深度相机,倒霉的事情就开始了,在使用的过程中遇到的某些问题搜不到,头秃啊呜呜呜呜呜呜呜呜 配置: ubuntu20.04(我实在是懒得去升级了,一旦升级就可能会出现找不到教程的可能性&#x…

运行时内存数据区之执行引擎(一)

执行引擎概述 执行引擎是Java虚拟机核心的组成部分之一。 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软…

【MATLAB基础绘图第8棒】绘制局部放大图

MATLAB绘制局部放大图 1 工具准备 MATLAB官网-ZoomPlot(Kepeng Qiu. Matlab Central, 2022) 初始数据图绘制完成后,调用以下代码: %% 添加局部放大 zp BaseZoom(); zp.plot;1.1 具体绘制步骤 具体绘制步骤如下: 通过鼠标左键框选作图区…

JavaScript中如何删除对象/数组中null、undefined、空对象及空数组实例代码

如下,对于一个多层嵌套的数据结构:例如 要做的就是删除所有value为空,数组为空,对象为空的字段 const querys {name: 测试,httpMethod: ,httpHeaders: [{key: Accept,value: test,},],restParams: [{key: ,value: ,},],body: {b…

GZIPOutputStream GZIPInputStream 数据压缩解压

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 数据压缩&解压 前言一、最终走上了压缩的路 GZIPOutputStream二、收到数据进行解压 GZIPInputStream三、测试Demo四、验证结果总结 前言 最近接手了一批性能优化… 遇到…

全注解下的SpringIoc

Spring架构中的核心理念就是IOC和AOP,可以说,Spring的强大离不开这两大特性。 因为spring boot推荐采用注解开发,所以文中主要介绍基于注解的Spring Ioc。 IoC容器简介 Spring IoC 容器是个管理 Bean(在Spring 中把每个需要管理…

VMware vCenter Server 8.0U1 发布 - 集中式管理 vSphere 环境

请访问原文链接:VMware vCenter Server 8.0U1 - 集中式管理 vSphere 环境,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 2023-04-18, VMware vSphere 8.0U1 发布。 详见:VMware vSphere 8 Update 1 新…

单片机的实例——28BYJ48步进电机

整体过程 准备资料1,步进电机内部结构示意图2,步进电机命名3,实际结构的转速比4,数值的含义5,实际内部主动轮结构分析实际内部机构及接线定子部分转子部分 定子和转子磁极的工作分析 6,工作时序7&#xff0…

机器学习 day06(向量化应用于多元线性回归的梯度下降算法,正规方程)

向量化多元线性回归,及梯度下降算法 将W₁,…,Wn写成向量W,将X₁,…,Xn写成向量X,而b还是之前的b注意:在多元线性回归的梯度下降算法中,Wj是指从W₁到Wn中的某一项&…

堆排序及top-k问题

堆排序及top-k问题 堆排序建堆向上调整建堆向下建堆 堆排序 top-k问题,建堆的应用 堆排序 堆排序,听名字就是要对堆进行排序,但当我们是无序数据时,首先我们就需要建立一个堆 建堆 这里让我们来回忆一下前面的堆,改…

Springboot基础学习之(二十三):实现定时任务

定时任务:在开发过程中是经常能够使用到的:定时发布邮件等等 先了解一下什么时cron表达式? 它是定义执行任务时间的一种时间表达式,使用方法 Scheduled(cron "0/2 * * * * ? "),这里代码的含义是每两秒执行…