mkfs.ext4 -- 生成ext4文件系统

mkfs.ext4 介绍

mkfs.ext4 是一个在 Linux 系统上用于创建 ext4 文件系统的工具。ext4 文件系统是扩展的第三代文件系统 (Fourth Extended Filesystem),是 ext3 的改进版,提供了更好的性能和功能。下面是对 mkfs.ext4 工具的详细讲解,包括其用途、选项和常见用法。

用途

mkfs.ext4 用于在分区或文件上创建一个新的 ext4 文件系统。它可以初始化一个分区或文件,使其可以被 Linux 系统识别和使用。

常见用法

mkfs.ext4 [options] device

device:要格式化的设备或文件,例如 /dev/sda1 或 imagefile.img。

常用选项

以下是 mkfs.ext4 的一些常用选项和它们的作用:

  • -L volume-label:设置文件系统的卷标。卷标是一个人类可读的标识符。
mkfs.ext4 -L mylabel /dev/sda1
  • -b block-size:设置文件系统的块大小。常见值为 1024, 2048, 4096。
mkfs.ext4 -b 4096 /dev/sda1
  • -m reserved-blocks-percentage:设置保留块的百分比,默认值是 5%。这些块由超级用户保留,防止文件系统满了后影响系统操作。
mkfs.ext4 -m 1 /dev/sda1
  • -O feature[,...]:启用指定的文件系统特性。特性列表可以通过 man mkfs.ext4 查看。
mkfs.ext4 -O ^has_journal /dev/sda1
  • -T fs-type:根据文件系统的类型,优化参数。例如 news, largefile, largefile4, small
mkfs.ext4 -T small /dev/sda1
  • -F:强制操作。如果目标设备已经包含文件系统,使用此选项会强制覆盖。
mkfs.ext4 -F /dev/sda1
  • -N number-of-inodes:指定文件系统中的 inode 数量。
mkfs.ext4 -N 100000 /dev/sda1

详细选项了解:

man mkfs.ext4
NAMEmke2fs - create an ext2/ext3/ext4 filesystemSYNOPSISmke2fs  [ -c | -l filename ] [ -b block-size ] [ -C cluster-size ] [ -droot-directory ] [ -D ] [ -g blocks-per-group ] [ -G number-of-groups ][  -i bytes-per-inode ] [ -I inode-size ] [ -j ] [ -J journal-options ][ -N number-of-inodes ] [ -n ] [ -m reserved-blocks-percentage ]  [  -ocreator-os ] [ -O [^]feature[,...]  ] [ -q ] [ -r fs-revision-level ] [-E extended-options ] [ -v ] [ -F ] [ -L  volume-label  ]  [  -M  last-mounted-directory ] [ -S ] [ -t fs-type ] [ -T usage-type ] [ -U UUID ][ -V ] [ -e errors-behavior ] [ -z undo_file ] device [ fs-size ]mke2fs -O journal_dev [ -b block-size ] [ -L volume-label ] [ -n ] [ -q] [ -v ] external-journal [ fs-size ]DESCRIPTIONmke2fs  is used to create an ext2, ext3, or ext4 filesystem, usually ina disk partition (or file) named by device.The file system size is specified by fs-size.  If fs-size does not havea  suffix,  it  is interpreted as power-of-two kilobytes, unless the -bblocksize option is specified, in which case fs-size is interpreted  asthe  number  of  blocksize blocks.   If the fs-size is suffixed by 'k','m', 'g', 't' (either upper-case or lower-case), then it is interpretedin  power-of-two  kilobytes,  megabytes, gigabytes, terabytes, etc.  Iffs-size is omitted, mke2fs will create the file system based on the de‐vice size.If mke2fs is run as mkfs.XXX (i.e., mkfs.ext2, mkfs.ext3, or mkfs.ext4)the option -t XXX is implied; so mkfs.ext3 will create  a  file  systemfor  use  with  ext3,  mkfs.ext4 will create a file system for use withext4, and so on.The defaults of the parameters for the newly created filesystem, if notoverridden   by  the  options  listed  below,  are  controlled  by  the/etc/mke2fs.conf configuration file.   See  the  mke2fs.conf(5)  manualpage for more details.

Options:

-b block-sizeSpecify  the  size  of blocks in bytes.  Valid block-size valuesare 1024, 2048 and 4096 bytes per block.  If omitted, block-sizeis  heuristically  determined by the filesystem size and the ex‐pected usage of the filesystem (see the -T option).   If  block-size  is preceded by a negative sign ('-'), then mke2fs will useheuristics to determine the appropriate  block  size,  with  theconstraint  that  the  block  size  will  be at least block-sizebytes.  This is useful for certain hardware  devices  which  re‐quire that the blocksize be a multiple of 2k.-c        Check the device for bad blocks before creating the file system.If this option is specified twice, then a slower read-write testis used instead of a fast read-only test.-C  cluster-sizeSpecify  the  size of cluster in bytes for filesystems using thebigalloc feature.  Valid cluster-size values are  from  2048  to256M  bytes  per cluster.  This can only be specified if the bi‐galloc feature is enabled.  (See the ext4 (5) man page for  moredetails  about bigalloc.)   The default cluster size if bigallocis enabled is 16 times the block size.-d root-directoryCopy the contents of the given directory into the root directoryof the filesystem.-D        Use  direct  I/O  when  writing to the disk.  This avoids mke2fsdirtying a lot of buffer cache memory, which  may  impact  otherapplications  running  on a busy server.  This option will causemke2fs to run much more slowly, however, so there is a  tradeoffto using direct I/O.-e error-behaviorChange the behavior of the kernel code when errors are detected.In all cases, a filesystem error will cause e2fsck(8)  to  checkthe  filesystem  on the next boot.  error-behavior can be one ofthe following:continue    Continue normal execution.remount-ro  Remount filesystem read-only.panic       Cause a kernel panic.-F        Force  mke2fs  to create a filesystem, even if the specified de‐vice is not a partition on a block special device, or  if  otherparameters  do not make sense.  In order to force mke2fs to cre‐ate a filesystem even if the filesystem appears to be in use  oris  mounted (a truly dangerous thing to do), this option must bespecified twice.-g blocks-per-groupSpecify the number of blocks in a block group.  There is  gener‐ally  no  reason for the user to ever set this parameter, as thedefault is optimal for the filesystem.  (For administrators  whoare creating filesystems on RAID arrays, it is preferable to usethe stride RAID parameter as part of the -E option  rather  thanmanipulating  the  number  of blocks per group.)  This option isgenerally used by developers who are developing test cases.If the bigalloc feature is enabled, the -g option  will  specifythe number of clusters in a block group.-G number-of-groupsSpecify  the number of block groups that will be packed togetherto create a larger virtual block group (or "flex_bg  group")  inan  ext4  filesystem.  This improves meta-data locality and per‐formance on meta-data heavy workloads.   The  number  of  groupsmust  be  a  power of 2 and may only be specified if the flex_bgfilesystem feature is enabled.-i bytes-per-inodeSpecify the bytes/inode ratio.  mke2fs creates an inode for  ev‐ery  bytes-per-inode bytes of space on the disk.  The larger thebytes-per-inode ratio, the fewer inodes will be  created.   Thisvalue  generally  shouldn't be smaller than the blocksize of thefilesystem, since in that case more inodes would  be  made  thancan  ever  be used.  Be warned that it is not possible to changethis ratio on a filesystem after it is created,  so  be  carefuldeciding the correct value for this parameter.  Note that resiz‐ing a filesystem changes the number of inodes to  maintain  thisratio.-I inode-sizeSpecify  the  size of each inode in bytes.  The inode-size valuemust be a power of 2 larger or equal to 128.  The larger the in‐ode-size  the  more space the inode table will consume, and thisreduces the usable space in the filesystem and  can  also  nega‐tively  impact  performance.   It is not possible to change thisvalue after the filesystem is created.In kernels after 2.6.10 and some earlier vendor  kernels  it  ispossible  to  utilize  inodes larger than 128 bytes to store ex‐tended attributes for improved performance.  Extended attributesstored  in  large inodes are not visible with older kernels, andsuch filesystems will not be mountable with 2.4 kernels at all.The default inode size is controlled by the mke2fs.conf(5) file.In  the mke2fs.conf file shipped with e2fsprogs, the default in‐ode size is 256 bytes for most file systems,  except  for  smallfile systems where the inode size will be 128 bytes.-l filenameRead  the  bad  blocks  list from filename.  Note that the blocknumbers in the bad block list must be generated using  the  sameblock  size  as  used  by mke2fs.  As a result, the -c option tomke2fs is a much simpler and less error-prone method of checkinga disk for bad blocks before formatting it, as mke2fs will auto‐matically pass the correct parameters to the badblocks program.-L new-volume-labelSet the volume label for  the  filesystem  to  new-volume-label.The maximum length of the volume label is 16 bytes.-m reserved-blocks-percentageSpecify the percentage of the filesystem blocks reserved for thesuper-user.  This avoids fragmentation,  and  allows  root-owneddaemons,  such  as syslogd(8), to continue to function correctlyafter non-privileged processes are prevented from writing to thefilesystem.  The default percentage is 5%.-M last-mounted-directorySet  the  last mounted directory for the filesystem.  This mightbe useful for the sake of utilities that key  off  of  the  lastmounted  directory  to  determine where the filesystem should bemounted.-n        Causes mke2fs to not actually create a filesystem,  but  displaywhat it would do if it were to create a filesystem.  This can beused to determine the location of the backup superblocks  for  aparticular  filesystem,  so  long  as the mke2fs parameters thatwere passed when the filesystem was originally created are  usedagain.  (With the -n option added, of course!)-N number-of-inodesOverrides  the  default calculation of the number of inodes thatshould be reserved for the filesystem (which  is  based  on  thenumber  of  blocks  and the bytes-per-inode ratio).  This allowsthe user to specify the number of desired inodes directly.-o creator-osOverrides the default value of the  "creator  operating  system"field of the filesystem.  The creator field is set by default tothe name of the OS the mke2fs executable was compiled for.-O [^]feature[,...]Create a filesystem with  the  given  features  (filesystem  op‐tions), overriding the default filesystem options.  The featuresthat are enabled by default are specified by  the  base_featuresrelation,    either   in   the   [defaults]   section   in   the/etc/mke2fs.conf configuration file, or in the  [fs_types]  sub‐sections for the usage types as specified by the -T option, fur‐ther modified by the features relation found in  the  [fs_types]subsections  for  the  filesystem  and  usage  types.   See  themke2fs.conf(5) manual page for  more  details.   The  filesystemtype-specific configuration setting found in the [fs_types] sec‐tion will override the global default found in [defaults].The filesystem feature set will be further edited  using  eitherthe  feature  set specified by this option, or if this option isnot given, by the default_features relation for  the  filesystemtype being created, or in the [defaults] section of the configu‐ration file.The filesystem feature set is comprised of a list  of  features,separated  by commas, that are to be enabled.  To disable a fea‐ture, simply prefix the feature name with a caret ('^')  charac‐ter.   Features  with  dependencies will not be removed success‐fully.  The pseudo-filesystem  feature  "none"  will  clear  allfilesystem features.For more information about the features which can be set, please seethe manual page ext4(5).-q        Quiet execution.  Useful if mke2fs is run in a script.-S        Write superblock and group descriptors only.  This is an extrememeasure to be taken only in the very unlikely case that  all  ofthe superblock and backup superblocks are corrupted, and a last-ditch recovery method  is  desired  by  experienced  users.   Itcauses  mke2fs to reinitialize the superblock and group descrip‐tors, while not touching the inode table and the block and inodebitmaps.   The  e2fsck  program  should be run immediately afterthis option is used, and there is no  guarantee  that  any  datawill  be  salvageable.   Due to the wide variety of possible op‐tions to mke2fs that affect the on-disk layout, it  is  criticalto  specify  exactly the same format options, such as blocksize,fs-type, feature flags, and other tunables when using  this  op‐tion,  or  the  filesystem  will  be further corrupted.  In somecases, such as filesystems that have been resized, or  have  hadfeatures  enabled  after  format time, it is impossible to over‐write all of  the  superblocks  correctly,  and  at  least  somefilesystem  corruption  will occur.  It is best to run this on afull copy of the filesystem so other options  can  be  tried  ifthis doesn't work.-t fs-typeSpecify  the filesystem type (i.e., ext2, ext3, ext4, etc.) thatis to be created.  If this option is not specified, mke2fs  willpick  a default either via how the command was run (for example,using a name of the form mkfs.ext2, mkfs.ext3, etc.)  or  via  adefault  as  defined by the /etc/mke2fs.conf file.   This optioncontrols which filesystem options are used by default, based  onthe fstypes configuration stanza in /etc/mke2fs.conf.If  the -O option is used to explicitly add or remove filesystemoptions that should be set in the newly created filesystem,  theresulting  filesystem  may not be supported by the requested fs-type.  (e.g., "mke2fs -t ext3 -O extent /dev/sdXX" will create afilesystem  that  is not supported by the ext3 implementation asfound in the Linux kernel; and "mke2fs -t ext3  -O  ^has_journal/dev/hdXX" will create a filesystem that does not have a journaland hence will not be supported by the ext3 filesystem  code  inthe Linux kernel.)-T usage-type[,...]Specify  how  the filesystem is going to be used, so that mke2fscan choose optimal filesystem parameters for that use.  The  us‐age  types  that  are supported are defined in the configurationfile /etc/mke2fs.conf.  The user may specify one or  more  usagetypes using a comma separated list.If  this  option  is is not specified, mke2fs will pick a singledefault usage type based on the size of  the  filesystem  to  becreated.   If  the  filesystem  size  is  less than 3 megabytes,mke2fs will use the filesystem type floppy.  If  the  filesystemsize  is greater than or equal to 3 but less than 512 megabytes,mke2fs(8) will use the filesystem type small.  If the filesystemsize  is  greater  than or equal to 4 terabytes but less than 16terabytes, mke2fs(8) will use the filesystem type big.   If  thefilesystem  size  is  greater  than  or  equal  to 16 terabytes,mke2fs(8)  will  use  the  filesystem  type  huge.    Otherwise,mke2fs(8) will use the default filesystem type default.-U UUIDSet  the  universally unique identifier (UUID) of the filesystemto UUID.  The format of the UUID is a series of hex digits sepa‐rated          by          hyphens,          like          this:"c1b9d5a2-f162-11cf-9ece-0020afc76f16".  The UUID parameter  mayalso be one of the following:clear  clear the filesystem UUIDrandom generate a new randomly-generated UUIDtime   generate a new time-based UUID-v     Verbose execution.-V     Print the version number of mke2fs and exit.-z undo_fileBefore  overwriting  a file system block, write the old contentsof the block to an undo file.  This undo file can be  used  withe2undo(8)  to restore the old contents of the file system shouldsomething go wrong.  If  the  empty  string  is  passed  as  theundo_file  argument,  the  undo  file  will be written to a filenamed mke2fs-device.e2undo in the directory  specified  via  theE2FSPROGS_UNDO_DIR  environment  variable or the undo_dir direc‐tive in the configuration file.WARNING: The undo file cannot be used to recover from a power orsystem crash.

示例

(1) 创建一个带卷标的 ext4 文件系统:

mkfs.ext4 -L myvolume /dev/sda1

(2) 创建一个带特定块大小的 ext4 文件系统:

mkfs.ext4 -b 2048 /dev/sda1

(3) 在一个文件中创建 ext4 文件系统:

dd if=/dev/zero of=imagefile.img bs=1M count=100mkfs.ext4 -F imagefile.img

(4) 禁用日志功能:

mkfs.ext4 -O ^has_journal /dev/sda1

(5) 为大文件优化文件系统:

mkfs.ext4 -T largefile /dev/sda1

使用案例

#!/bin/bash#############TARGET: Build Rootfs Images#############dd if=/dev/zero of=$ROOTFS_IMAGE_NAME bs=1M count=300
mkfs.ext4 -F -L linuxroot $ROOTFS_IMAGE_NAME

指令解析:
创建空的文件

dd if=/dev/zero of=$ROOTFS_IMAGE_NAME bs=1M count=300

这条命令使用 dd 工具创建一个大小为 300 MB 的文件,并用零填充它。具体来说:

  • **dd**:数据复制和转换工具,常用于低级别的数据处理和文件创建。
  • **if=/dev/zero**:输入文件 (input file) 是 /dev/zero,这是一个特殊的文件,读它会生成无限的零字节。这意味着将从 /dev/zero 读取数据。
  • **of=$ROOTFS_IMAGE_NAME**:输出文件 (output file) 是环境变量 $ROOTFS_IMAGE_NAME 指定的文件名。这是新创建的文件的名字。
  • **bs=1M**:设置块大小 (block size) 为 1 MB。这意味着每次读写 1 MB 数据。
  • **count=300****:**设置块数 (block count) 为 300。这意味着总共要写 300 个 1 MB 的块,即总大小为 300 MB。

结合起来,整个命令的作用是创建一个大小为 300 MB 的文件,文件名由环境变量 $ROOTFS_IMAGE_NAME 指定,文件内容全部为零。这种文件常用于创建空白的磁盘镜像或虚拟磁盘,用于进一步的文件系统创建或其他操作。
创建 ext4 文件系统

mkfs.ext4 -F -L linuxroot $ROOTFS_IMAGE_NAME   #在rootfs.ext4文件上创建ext4文件系统

这条命令使用 **mkfs.ext4** 工具在指定的文件上创建一个 ext4 文件系统。具体来说:

  • mkfs.ext4:这是创建 ext4 文件系统的命令。
  • -F:强制 (force) 操作,即使目标文件看起来不像一个有效的磁盘分区,也强制格式化它。这通常用于格式化一个普通文件或已经包含文件系统的设备。
  • -L linuxroot:设置文件系统的卷标 (label) 为 linuxroot。卷标是一个人类可读的标识符,用于标记文件系统,可以使用命令如 e2label 或 blkid 查看和更改。
  • $ROOTFS_IMAGE_NAME:这是要创建文件系统的目标文件名。这个文件名由环境变量 $ROOTFS_IMAGE_NAME 指定,应该是之前由 dd 命令创建的那个 300 MB 的文件。

结合起来,这条命令的作用是:

  1. $ROOTFS_IMAGE_NAME 文件上创建一个 ext4 文件系统。
  2. 强制执行这个操作,即使文件可能不符合预期的格式。
  3. 将文件系统的卷标设置为 linuxroot

这通常用于准备一个文件作为根文件系统镜像,以便在嵌入式系统或虚拟机中使用。经过这一步,$ROOTFS_IMAGE_NAME 文件就包含了一个可以挂载和使用的 ext4 文件系统。

注意事项

  • 使用 mkfs.ext4 会擦除目标设备上的所有数据。因此,在执行此命令之前,务必确认目标设备或文件是正确的。
  • 有些选项可能会影响文件系统的兼容性或性能,使用前应查阅相关文档以确保合适的配置。

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

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

相关文章

计算机视觉实验二:基于支持向量机和随机森林的分类(Part one: 编程实现基于支持向量机的人脸识别分类 )

目录 一、实验内容 二、实验目的 三、实验步骤 四、实验结果截图 五、实验完整代码 六、报错及解决方案 PS:实验的运行速度受电脑性能影响,如遇运行卡顿请耐心等待。 一、实验内容 编程实现基于支持向量机的人脸识别分类,基本功能包括:Labeled Faces in th…

【Kubernetes项目部署】k8s集群+高可用、负载均衡+防火墙

项目架构图 (1)部署 kubernetes 集群 详见:http://t.csdnimg.cn/RLveS (2) 在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上; Pod使用hostP…

Docker环境离线安装

Docker环境离线安装 下载下列.deb包 sudo *.deb

【前端面经】滴滴一面

1.闭包是什么? 闭包的用途? JS 闭包 2024-3-12 闭包是指在一个函数内部定义的函数,该内部函数可以访问其外部函数的变量和参数。即使外部函数已经执行完毕并返回了,内部函数依然能够访问这些变量和参数。 //举例 function outerFunction(outerVariab…

windows系统中开发的GO程序生成docker镜像并部署到阿里云服务(linux系统)的操作说明

本文简述将go程序生成docker镜像的操作方法,以及如何部署到阿里云服务。其中go程序在windows系统中开发,阿里云服务的操作系统为linux(centos7.9),以下为流程示意图: 一、window系统中开发go程序 程序实现…

前端技术栈三(vue+Axios)

一、Vue 1 基本介绍 1.1 Vue 是什么? Vue (读音 /vjuː/,类似于 view) 是一个前端框架, 易于构建用户界面 Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或项目整合 支持和其它类库结合使用 开发复杂的单页应用非常方便 Vue 是…

RAM + 串口的简单应用

REVIEW 之前已经学习过: RAM: RAM IP核配置_ip核 ram配置-CSDN博客 串口接收:Vivado 串口接收优化-CSDN博客 串口发送:Vivado 串口通信(UART)------串口发送_vivado串口收发实验-CSDN博客 按键:基于状态机的按键消抖实…

ADOP带你了解:数据中心的高速互联解决方案

随着大语言模型和AIGC的飞速发展,数据中心对于高速、高可靠性的网络连接需求日益增长。ADOP系列产品正是在这样的背景下应运而生,为现代数据中心提供了全面的连接解决方案。 ADOP系列产品概览 ADOP系列产品旨在为云、高性能计算、Web 2.0、企业、电信、…

SparkSQL的分布式执行引擎-Thrift服务:学习总结(第七天)

系列文章目录 SparkSQL的分布式执行引擎 1、启动Thrift服务 2、beeline连接Thrift服务 3、开发工具连接Thrift服务 4、控制台编写SQL代码 文章目录 系列文章目录前言一、SparkSQL的分布式执行引擎(了解)1、启动Thrift服务2、beeline连接Thrift服务3、开发工具连接Thrift服务4、…

深入理解 PHP 魔术常量

PHP 魔术常量是 PHP 语言中预先定义的常量,它们具有特殊的含义和用途。这些常量的值在程序运行时会根据上下文自动确定,为开发人员提供了方便和灵活性。本文将从多个方面深入探讨 PHP 魔术常量,包括它们的定义、特点、用途以及使用注意事项。…

(7)摄像机和云台

文章目录 前言 1 云台 2 带有MAVLink接口的摄像机 3 相机控制和地理标签 4 视频质量差的常见修复方法 5 详细主题 前言 Copter、Plane 和 Rover 最多支持 3 轴云台,包括自动瞄准感兴趣区域(ROI)的相机和自动触发相机快门等先进功能。按…

c#string常用方法总结

前言 我们在开发c#程序的过程中经常需要使用string这个类,string类也有很多方法,本文将会对我们常用的方法进行介绍,关于string类,一方面有静态方法一方面也有实例方法,下面分别介绍: 1、静态方法 1.1 C…

好书推荐:AI教母李飞飞自传《我看见的世界》,豆瓣9.1分!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

子组件和父组件之间传值#Vue3#defineProps

子组件和父组件之间传值#Vue3#defineProps 效果&#xff1a; 子组件&#xff1a; <!-- 6s执行项详情图片的子组件 --> <template><div><imgv-if"itemsLocal.url":src"itemsLocal.url"style"width: 50px; height: 50px; marg…

echarts自定义legend方法

思路&#xff1a;在配置legend里面设置一个selected&#xff0c;名字和series里面的name对应,name名字是必须的&#xff0c;legend里面的data是可配置或不配置都可以&#xff0c;否则legend无效&#xff0c;不显示&#xff0c;通过true和false控制显示或不显示。配置本身的lege…

【Ardiuno】实验ESP32单片机搭建简易Web服务器功能(图文)

今天&#xff0c;小飞鱼继续来测试使用ESP32来实现简易的wifi无线web服务器功能。使用Ardiuno平台编辑器输入以下示例代码&#xff1a; #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h>const char* ssid &q…

python调用chatgpt

简单写了一下关于文本生成接口的调用&#xff0c;其余更多的调用方法可在官网查看 import os from dotenv import load_dotenv, find_dotenv from openai import OpenAI import httpxdef gpt_config():# 为了安全起见&#xff0c;将key写到当前项目根目录下的.env文件中# find…

java 不可变集合的创建和Stream流的使用

文章目录 一、创建不可变的集合1.1为什么创建不可变的集合1.2 创建List、Set和Map的不可变集合1.2.1 创建List的不可变集合1.2.2 创建Set 的不可变集合1.2.3 创建Map的不可变集合 二、使用集合 的Stream 流2.1 Stream的使用步骤2.2 Stream的方法 三、如何获取Stream 流对象四、…

深度学习增强的非线性光纤单像素成像系统

1、光子器件的逆向设计&#xff1a;通过机器学习&#xff0c;特别是深度学习&#xff0c;可以高效地进行光子器件的逆向设计&#xff0c;这在传统的多参数优化问题中尤为重要。 2、超构表面和超材料设计&#xff1a;机器学习被用于设计具有特定光学特性的超构表面和超材料&…

初阶 《数组》 1. 一维数组的创建和初始化

1. 一维数组的创建和初始化 1.1 数组的创建 数组是一组相同类型元素的集合 数组的创建方式&#xff1a; type_t arr_name [const_n]; //type_t 是指数组的元素类型 //const_n 是一个常量表达式&#xff0c;用来指定数组的大小数组创建的实例&#xff1a; //代码1 int ar…