Liunx磁盘管理(上)

 Liunx磁盘管理(中)-CSDN博客

目录

一.硬盘类型

机械硬盘(HDD)

固态硬盘(SSD)

二.插拔方式

1. 热插拔(Hot Swapping)

2. 冷插拔(Cold Swapping)

3. 模块化插拔

4. 插拔式硬盘托架

三.硬盘接口

SATA(Serial ATA)

SCSI(Small Computer System Interface)

SAS(Serial Attached SCSI)

NVMe(Non-Volatile Memory Express)

IDE(Integrated Drive Electronics)

总结

四.Liunx系统磁盘与分区命名方式

传统命名方法:

分区命名:

使用by-uuid或by-label命名:

特殊设备命名:

五.分区

分区的目的

分区格式

分区类型

文件系统

Linux 文件系统是指 Linux 操作系统用来管理和组织数据的结构和机制。文件系统负责存储、检索和操作文件和目录,并确保数据的完整性和安全性。Linux 支持多种文件系统,以下是最常见的 Linux 文件系统:

Windows 文件系统(扩展了解)

注意事项

inode

硬盘的实际分区数量限制

关于65535个分区


一.硬盘类型

机械硬盘(HDD)

机械硬盘(HDD)是一种存储设备,使用旋转磁盘和读/写磁头来存储和检索数据。以下是机械硬盘的基本结构:

  1. 盘片(Platters):机械硬盘通常由多个盘片组成,每个盘片都是一个圆形的金属或玻璃基板,上面涂有磁性材料。

  2. 磁头(Read/Write Heads):每个盘片都有两个磁头,一个用于读取数据,另一个用于写入数据。磁头位于盘片上方和下方,通过磁性浮动臂和驱动器来移动。

  3. 磁道(Tracks):盘片被划分为多个同心圆轨道,称为磁道。每个磁道可以存储一定量的数据。

  4. 扇区(Sectors):每个磁道被划分为多个扇区,每个扇区可以存储固定大小的数据块,通常为512字节。

  5. 主轴(Spindle):盘片通过主轴连接在一起,并由电机驱动主轴旋转。通常,硬盘的转速以每分钟转数(RPM)来表示,如5400 RPM、7200 RPM或10000 RPM。

  6. 磁头臂(Actuator Arm):磁头臂是一个可移动的机械臂,上面安装有磁头。它通过电机和控制器的控制,可以在盘片上移动磁头。

  7. 磁头定位器(Head Positioner):磁头定位器负责精确定位磁头在盘片上的位置。它使用电磁力将磁头臂移动到正确的磁道上。

  8. 控制器(Controller):硬盘的控制器是一个电子设备,负责控制硬盘的操作。它管理磁头的移动、数据的读写、错误检测和纠正等功能。

当计算机需要读取或写入数据时,控制器将指令发送给磁头臂和磁头,使其移动到正确的位置,并在磁道上读取或写入数据。机械硬盘的工作原理基于磁性材料的磁化和反磁化过程,通过改变磁场的方向来存储和检索数据。然而,由于机械硬盘使用机械部件进行数据访问,因此速度较慢,且容易受到物理冲击和震动的影响。

  • 特点
    • 容量大:机械硬盘通常提供较大的存储容量,适合存储大量数据。
    • 成本低:与固态硬盘相比,机械硬盘的每 GB 成本较低。
    • 寿命长:机械硬盘的磁性存储通常具有较长的寿命。
  • 缺点
    • 速度较慢:与 SSD 相比,HDD 的读写速度较慢。
    • 易碎:由于机械部件,HDD 容易受到冲击和振动的影响。
    • 噪音和热量:HDD 在运行时可能产生噪音和热量。

固态硬盘(SSD)

固态硬盘是一种新型硬盘,使用闪存技术来存储数据,没有机械部件。

  • 特点
    • 速度快:SSD 读写速度非常快,适合高性能需求。
    • 耐用性强:SSD 没有机械部件,抗震能力强,适合便携设备。
    • 无噪音:由于没有机械部件,SSD 运行时没有噪音。
  • 缺点
    • 成本较高:SSD 每 GB 成本较高,容量较小。
    • 磨损问题:SSD 的闪存有写入次数限制,可能会随着时间而磨损。

二.插拔方式

1. 热插拔(Hot Swapping)

热插拔是一种允许在系统运行时插入或拔出硬件组件的方式。它在不关闭系统电源的情况下进行硬件操作,通常用于高可用性和高可靠性环境。

  • 应用场景:服务器、数据中心、RAID 阵列、外部硬盘、网络设备等。
  • 优势:可以在不中断系统运行的情况下更换硬件,减少停机时间。
  • 注意事项:需要硬件和软件的支持。确保插拔时遵循正确的步骤,以避免数据丢失或系统崩溃。

2. 冷插拔(Cold Swapping)

冷插拔是在系统关闭或断电的情况下插入或拔出硬件组件的方式。它要求在更换硬件前关闭设备电源。

  • 应用场景:台式机、笔记本电脑、外部设备等。
  • 优势:操作相对简单,不需要额外的技术支持。
  • 注意事项:需要关闭电源,可能会导致系统停机。

3. 模块化插拔

模块化插拔涉及将硬件组件设计成模块,可以方便地插入或拔出。这种方式通常用于服务器、交换机和数据中心等。

  • 应用场景:服务器、交换机、RAID 控制器、光纤模块等。
  • 优势:提供灵活性,便于硬件升级和更换。
  • 注意事项:确保模块与系统兼容,并遵循正确的安装步骤。

4. 插拔式硬盘托架

这种插拔方式用于硬盘和 SSD,允许在不打开机箱的情况下快速更换硬盘。

  • 应用场景:服务器、NAS(网络附加存储)、数据中心等。
  • 优势:方便硬盘更换,适用于高可用性环境。
  • 注意事项:在插拔硬盘时,确保正确挂载和卸载,以避免数据损坏。

简单来分就是分为热插拔和非热插拔啦。

三.硬盘接口

SATA(Serial ATA)

SATA 是目前最常用的硬盘接口之一,主要用于消费级计算机和服务器。它具有以下特点:

  • 广泛使用:用于连接 HDD、SSD 和光驱等。
  • 速度:SATA 接口的传输速度从 SATA I 的 1.5 Gbps 到 SATA III 的 6 Gbps。
  • 兼容性:许多计算机和服务器都支持 SATA 接口。
  • 数据和电源分离:SATA 硬盘通常有单独的数据线和电源线。

SCSI(Small Computer System Interface)

SCSI 是一种老式的接口类型,通常用于服务器和专业存储系统。

  • 多样性:SCSI 有多种变体,包括 Parallel SCSI、SAS(Serial Attached SCSI)等。
  • 可靠性:SCSI 通常用于高可靠性和高性能的场景。
  • 扩展性:SCSI 支持多个设备的连接,适用于大规模存储系统。

SAS(Serial Attached SCSI)

SAS 是 SCSI 的一种序列化版本,常用于企业级存储和服务器。

  • 高性能:SAS 支持更高的传输速度,比 SATA 更适合高性能场景。
  • 多设备支持:SAS 可以在同一条总线上支持多个设备。
  • 向后兼容:SAS 支持 SATA 硬盘,这使得其在企业环境中具有更高的灵活性。

NVMe(Non-Volatile Memory Express)

NVMe 是一种专为固态硬盘(SSD)设计的接口和协议,通常通过 PCIe(Peripheral Component Interconnect Express)总线连接。

  • 极高性能:NVMe 提供比 SATA 和 SAS 更高的传输速度,适合高性能计算和数据中心应用。
  • 并行化:NVMe 支持多队列和并行操作,提高了 SSD 的性能。
  • 直接与 CPU 通信:NVMe 通过 PCIe 通信,减少了数据传输的延迟。

IDE(Integrated Drive Electronics)

IDE 是一种老式的硬盘接口类型,主要用于较旧的计算机系统。

  • 并行接口:IDE 是一种并行接口,使用较宽的数据线。
  • 过时:IDE 现在很少使用,已被 SATA 取代。

总结

选择硬盘接口取决于你的硬件和性能需求。对于消费级计算机,SATA 是最常用的;对于企业级存储,SAS 和 NVMe 是更好的选择。

IDE(已经淘汰---也叫ATA)
SATA (Serial ATA),是当前主流的一种硬盘接口  
SCSI(小型计算机的接口--很少了) 
SAS代替了scsi (Serial Attached SCSI),当前SAS接口居多

IDE和SATA的区别:

  • 接口不同,传输的速率不同。IDE根据规范,最高到133MB/s, 而SATA3.0,可达6Gb/S,速度差距巨大
  • SATA支持热插拔

SAS与SCSI的区别

  • 接口不同
  • SAS兼容SATA,SCSI不兼容SATA

四.Liunx系统磁盘与分区命名方式

在Linux系统中,硬盘设备通常使用一些标准的命名约定。这些约定基于设备的类型、连接方式以及系统内的位置。以下是一些常见的硬盘设备命名约定:

  1. 传统命名方法:

    • 在许多Linux发行版中,硬盘设备的名称通常以字母开始,后跟数字。
    • 最常见的硬盘设备命名方式是 /dev/sdX,其中 s 代表 SCSI(尽管现代系统中的大多数硬盘使用SATA,但命名方式继承自SCSI),X 是从 a 开始的字母,依次表示系统中的每个硬盘。例如,第一块硬盘是 /dev/sda,第二块是 /dev/sdb,以此类推。
  2. 分区命名:

    • 在传统的硬盘设备命名基础上,如果硬盘被分为多个分区,那么分区会在硬盘名称后面加上数字。例如,第一块硬盘的第一个分区是 /dev/sda1,第二个分区是 /dev/sda2,以此类推。
  3. 使用by-uuidby-label命名:

    • /dev/disk/ 目录下,你会找到按 UUID(Universally Unique Identifier)或标签命名的设备。UUID在格式化分区时生成,并且是唯一的;标签是你可以为分区设置的名称。
    • 按 UUID 命名的硬盘设备可能看起来像这样:/dev/disk/by-uuid/123e4567-e89b-12d3-a456-426614174000
    • 按标签命名的硬盘设备可能看起来像这样:/dev/disk/by-label/MyLabel
  4. 特殊设备命名:

    • 有时,你可能会看到一些特殊设备命名,比如 /dev/nvmeXnY,其中 nvmeX 表示 NVMe 硬盘,nY 表示硬盘上的命名空间。
    • 其他特殊命名方式包括 /dev/mmcblkX(用于 MMC/SD 卡)和 /dev/loopX(用于 loopback 设备)。

总之,设备命名方式取决于硬盘的类型、连接方式、分区以及其他特性。了解这些命名约定可以帮助你更好地管理和配置硬盘设备。

五.分区

在Linux系统中,硬盘分区通常用于将一块硬盘分成多个部分,以实现更好的数据管理、隔离、安全和性能优化。以下是有关硬盘分区的基础知识,以及可以创建的分区数量的详细信息。

分区的目的

  1. 文件分类
    • 分区可以帮助组织和管理文件。例如,将操作系统文件与用户数据文件分开。
  2. 多操作系统
    • 多个分区允许在同一硬盘上安装多个操作系统。
  3. 数据隔离
    • 将数据隔离在不同的分区中有助于减少数据损失的风险。即使一个分区损坏,其他分区可能仍然可以访问。
  4. 备份和恢复
    • 分区可以用于备份和恢复,使得数据更易于管理和恢复。
  5. 权限和安全
    • 分区可以用来设置不同的权限和访问控制,以提高安全性。

分区格式

磁盘分区的格式指的是分区的结构和布局,它决定了数据在磁盘上的组织方式、系统的启动方式,以及分区的操作功能。以下是常见的分区格式:

  • MBR(Master Boot Record)
    • 分区命令:fdisk
    • MBR分区表最多支持四个主分区,或者三个主分区和一个扩展分区。扩展分区可以包含多个逻辑分区。理论上,可以在扩展分区中创建多达 128 个逻辑分区,但实际上常见的限制在 10 至 16 个左右。由于其局限性,MBR已逐渐被更现代的GPT所取代。
    • MBR的缺点是它只能支持最大2 TB的磁盘容量,且不支持现代的启动功能,如UEFI的Secure Boot。
  • GPT(GUID Partition Table)
    • 分区命令:gdisk(parted---RHEL6)
    • GPT分区表是现代硬盘的标准,GPT大于小于2TB都可以,支持更大的硬盘容量和更多的分区。GPT允许最多128个分区。
    • GPT是较新的分区格式,能够支持更大的磁盘容量(高达18 EB),同时支持更多的分区(最多128个主分区)。

选择分区格式时,主要取决于操作系统和硬件要求。如果你的系统支持UEFI(如较新的Windows或Linux发行版),使用GPT格式通常是更好的选择。如果你在较旧的系统上运行或需要兼容性,则可能需要使用MBR格式。

分区格式与文件系统不同,文件系统是定义数据在分区内的组织方式,如FAT32、NTFS、ext4等。通常在设置磁盘分区后,需要选择合适的文件系统来格式化分区,以便存储数据。

分区类型

磁盘分区是指将物理硬盘划分为多个独立的逻辑区域,每个区域可以被视为独立的磁盘。这样做的原因包括提高数据管理效率、增强系统安全性、支持多操作系统以及优化性能等。

分区的主要类型包括:

  1. 主分区(Primary Partition):这是主要的启动分区,通常系统会安装在这里。一个磁盘可以有多个主分区。

  2. 扩展分区(Extended Partition):由于传统的MBR(主引导记录)格式最多允许4个主分区,所以使用扩展分区来创建多个逻辑分区。

  3. 逻辑分区(Logical Partition):这些分区是扩展分区内的分区,通常用于存储数据或者安装其他操作系统。

文件系统

Linux 文件系统

Liunx文件系统是指Linux 操作系统用来管理和组织数据的结构和机制。文件系统负责存储、检索和操作文件和目录,并确保数据的完整性和安全性。Linux 支持多种文件系统,以下是最常见的 Linux 文件系统:

  1. ext4(Fourth Extended File System)

    • 是最流行的 Linux 文件系统之一,作为许多 Linux 发行版的默认文件系统。
    • 提供良好的性能、稳定性和兼容性。
    • 支持大文件和大分区,具有日志记录、延迟分配、在线碎片整理等特性。
  2. XFS:

    • 是一个高性能文件系统,特别适合大规模存储和高吞吐量应用。
    • 支持在线扩展,但不支持在线缩小。
    • 通常用于服务器和数据中心环境。
  3. Btrfs(B-tree File System):

    • 是一个先进的文件系统,支持快照、子卷、在线压缩、数据校验等功能。
    • 设计用于高级存储管理,适合用作文件服务器和存储系统。
    • 具有在线缩小和扩展的能力。
  4. F2FS(Flash-Friendly File System):

    • 专为闪存存储(如 SSD 和 eMMC)设计。
    • 优化了闪存的读写操作,适用于移动设备和固态硬盘。
  5. ZFS:

    • 是一个功能丰富的文件系统和逻辑卷管理器,支持快照、复制、数据校验、压缩等功能。
    • 最初由 Sun Microsystems 开发,现在在 Linux 上也可用。
    • 适用于需要高级存储管理的环境。
  6. ISO 9660 和 UDF(Universal Disk Format):

    • 用于光盘和 DVD 等光学介质的文件系统。
    • ISO 9660 适用于标准 CD,UDF 通常用于 DVD 和蓝光光盘。
Windows 文件系统(扩展了解)
  1. FAT32(File Allocation Table 32):

    • Windows 中的老式文件系统,也用于许多外部存储设备。
    • 单个文件的最大尺寸为 4 GB,最大分区大小为 2 TB。
    • 兼容性高,广泛用于USB驱动器、存储卡等,但不支持高级权限和安全特性。
  2. NTFS(New Technology File System):

    • Windows 的默认文件系统,支持权限管理、压缩、加密、文件恢复等功能。
    • 支持非常大的文件和分区。
    • 非 Windows 系统通常需要额外的工具才能完全支持 NTFS。
  3. exFAT(Extended File Allocation Table):

    • 结合了 FAT32 的兼容性和 NTFS 的大文件支持。
    • 跨平台兼容性高,适用于外部存储设备。
  1. tmpfs 和 ramfs:

    • tmpfs 在内存中创建临时文件系统,适用于存储临时文件。
    • ramfs 也是内存文件系统,但不会自动释放内存,需要小心使用。

注意事项
  • 在一个分区上不能混合使用不同的分区格式或文件系统,可以在不同的分区使用不同的格式和文件系统
  • 更改分区格式或文件系统可能导致数据丢失或损坏,因此请确保备份重要数据。
  • 如果需要在不同文件系统之间切换,应使用适当的工具。
inode

在文件系统中,inode(索引节点)是一种数据结构,用于描述文件的元数据,而不直接存储文件内容。inode 通常包含以下信息:

  • 文件类型(例如,普通文件、目录、符号链接等)
  • 文件权限和所有权(包括用户ID和组ID)
  • 文件大小
  • 文件创建、修改和访问的时间戳
  • 链接数(指向该inode的硬链接数)
  • 数据块指针,用于定位文件数据在磁盘上的存储位置

每个文件和目录在文件系统中都有一个唯一的inode编号,通过这个编号,文件系统可以检索文件的相关信息。

  1. 使用ls -i命令: 通过在终端中使用ls -i,可以查看每个文件和目录的inode编号。例如:

    ls -i /path/to/directory

    这将显示给定目录中的文件及其对应的inode编号。

  2. 使用stat命令stat命令提供了有关文件或目录的详细信息,包括inode编号、文件权限、大小等。例如:

    stat /path/to/file

    这会显示指定文件的完整信息,包括inode编号。

  3. 查看文件系统的inode信息: 可以使用df -i命令来查看整个文件系统的inode使用情况。例如:

    df -i

    这个命令会显示每个挂载点的inode使用情况,包括已使用和可用的inode数量。

硬盘的实际分区数量限制

尽管 GPT 理论上支持 128 个分区,但硬盘的最大分区数量还受以下因素的影响:

  1. 操作系统限制:某些操作系统可能对分区数量有限制。
  2. 分区管理工具限制:一些分区管理工具可能无法处理过多的分区。
  3. 管理复杂性:创建过多的分区会使硬盘管理复杂化。

关于65535个分区

  • 对于一块硬盘而言,理论上可以创建65535个分区,但这是不常见的情况。通常,操作系统和硬件对分区数量有一定的限制,而且在实际使用中,大量分区会增加复杂性和管理难度。
  • GPT通常被认为是最灵活和实用的分区表方案,因为它支持更多分区,并且解决了MBR在硬盘容量方面的局限性。

注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!因为转换格式要格式化硬盘。

因此,虽然理论上可能创建大量分区,但在实践中,128个分区的GPT已经满足大多数需求。如果你有特殊的用途,可能需要考虑特定的硬件和操作系统的限制,以及如何高效管理大量分区。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++仿函数周边及包装器

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

FileCodeBox-Lite:轻量级文件分享解决方案

在数字时代,文件分享是一个常见的需求,无论是个人用户还是企业团队。FileCodeBox-Lite提供了一个简单、高效且安全的文件分享解决方案。以下是对FileCodeBox-Lite项目的详细介绍。 项目简介 FileCodeBox-Lite是一个轻量级的文件分享系统,…

机器学习-06-聚类算法总结

聚类总结 1.聚类 机器学习 任务 聚类 无label的 分类 label是离散的 回归 label是连续的 2.聚类算法-kmeans 划分聚类 思想: D中选取k个作为初始质心 repeat 计算所有点与质心的距离,分到近的质心簇 更新簇之间的质心 until 质心不改 不足&#xff…

AI新篇章:全面解读ChatGPT3.5与GPT4.0的革命性融合

MidTool(kk.zlrxjh.top),一个集成了多种先进人工智能技术的助手,融合了ChatGPT3.5、GPT4.0、DALLE 3和Midjourney等多个智能服务,提供多功能体验。下面是对这些技术的简要概述: **ChatGPT3.5**:…

dockerfile 搭建lamp 实验模拟

一 实验目的 二 实验 环境 1, 实验环境 192.168.217.88一台机器安装docker 并做mysql nginx php 三台容器 2, 大致框架 3, php php:Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析 php有三…

LeetCode 131 —— 分割回文串

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 首先,按照 LeetCode 5——最长回文子串 中的思路,我们先求出 d p dp dp,这样我们就知道了所有的子串是否是回文子串。 然后,我们进行一个 dfs 搜索,起…

Linux用户权限管理与文件权限设定

一、相关概念 1、用户与角色分类 超级用户:拥有对系统的最高管理权限,默认是root用户。 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如www用户、ftp用户等。 虚拟用户:也叫“…

JavaScript+B/S版云LIS系统源码ASP.NET CORE 3.1 MVC云LIS系统如何实现样本追踪的预警功能?医院云LIS检验系统源码

JavaScriptB/S版云LIS系统源码ASP.NET CORE 3.1 MVC云LIS系统如何实现样本追踪的预警功能?医院云LIS检验系统源码 实验室信息管理系统(Trasen Laboratory Information Management System)是一套专业的医疗实验室信息管理软件,包含…

【C++】深入理解string类

一、熟悉string类 1.1 string类的由来: C语音中的字符串需要我们自己管理底层空间,容易内存泄露。而C是面向对象语音,所以它把字符串封装成一个string类。 C中对于string的定义为:typedef basic_string string; 也就是说C中的str…

Linux 进程间通信之匿名管道

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:Linux知识分享⏪   🚚代码仓库:Linux代码练习🚚   🌹关注我🫵带你学习更多Linux知识   🔝 目录 前言 一. 进程间通信介绍 1.进程间通…

富唯智能案例|双3D相机引导衔架抓取铝型材

随着制造业的快速发展和自动化水平的不断提升,铝型材的自动化抓取和加工成为行业内的一大技术难题。铝型材因其轻便、耐腐蚀、易加工等特点,广泛应用于建筑、汽车、电子等领域。然而,铝型材的形状多样、尺寸不一,以及生产线上的高…

4G小车的公网直播推流

一直想做一个小车, 可以通过4G推流, 没想到现在很多云服务提供商, SRS云服务器已经可以一键搭建了. 硬件方面, 就是一个1126驮着一个3516, 1126负责4G连接, 转流到Intenet, 3516负责vi_venc_rtsp 思路如下, 我的1126的摄像头一直没能横过来, 所以就不用1126的摄像头了, 先用35…

SpringBoot配置HTTPS及开发调试

前言 在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享 后端配置 …

项目管理-项目管理科学基础

项目管理:每天进步一点点~ 活到老,学到老 ヾ(◍∇◍)ノ゙ 何时学习都不晚,加油 1.项目管理科学基础--主要内容 项目管理科学基础,以下讲解两方面的内容:工程经济学、运筹学。 2.具体知识点 2…

使用Postman对@RequestPart和HttpServletRequest组合传参方式

使用Postman对RequestPart和HttpServletRequest组合传参方式 方法代码如下: /*** 发布*/ApiOperation("发布")ApiImplicitParams({ApiImplicitParam(name "req", value "json格式", dataType "Map", dataTypeClass Ma…

Docker-Compose概述与简单编排部署

目录 前言 一、Docker-Compose 概述 1、Docker-Compose 概念 2、Docker-Compose 优缺点 2.1 Docker-Compose 优点 2.2 Docker-Compose 缺点 3、Docker-Compose与Docker-Swarm的区别 二、两大文件格式 1、YAML 文件格式 2、JOSON 文件格式 3、YAML 与 JOSON 格式的区…

【C++】:const成员,取地址及const取地址操作符重载

目录 一,const成员二,取地址及const取地址操作符重载 一,const成员 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的…

力扣刷题第0天:只出现一次的数字

目录 第一部分:题目描述 ​第二部分:题目分析 第三部分:解决方法 3.1思路1: 双指针暴力求解 3.2 思路2:异或运算 第四部分:总结收获 第一部分:题目描述 第二部分:题目分析 由图片分析可得,该题目对算法时间复杂度有一定的要求时间复杂度为O(N)&a…

Linux搭建mysql环境

搭建 MySQL 环境 1、使用 wget 下载安装包,下载到 opt 目录中 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2、安装 MySQL 公钥 rpm -i mysql57-community-release-el7-10.noarch.rpmrpm --import https://repo.mysql.com/RPM-GP…

【算法刷题 | 动态规划02】5.02(不同路径、不同路径||、整数拆分、不同的二叉搜索树)

文章目录 5.不同路径5.1题目5.2解法一:深度搜索5.2.1深度搜索思路5.2.2代码实现 5.3解法二:动规5.3.1动规思路5.3.2代码实现 6.不同路径||6.1题目6.2解法:动规6.2.1动规思路(1)dp数组以及下标含义(2&#x…
最新文章