深入探索KVM虚拟化技术:全面掌握虚拟机的创建与管理

news2024/11/28 22:46:23

文章目录

    • 安装KVM
      • 开启cpu虚拟化
      • 安装KVM
      • 检查环境是否正常
    • KVM图形化创建虚拟机
      • 上传ISO
      • 创建虚拟机
      • 加载镜像
      • 配置内存
      • 添加磁盘
      • 能否手工指定存储路径呢?
      • 创建成功
      • 安装完成
      • 查看虚拟机
    • KVM命令行创建虚拟机
      • 创建磁盘
      • 通过命令行创建虚拟机
      • 手动安装虚拟机
    • KVM命令行创建虚拟机-kickstart全自动安装
      • 使用Centos7生成cfg文件
      • 使用Centos8自动安装
      • 测试
    • KVM基本命令总结

安装KVM

开启cpu虚拟化

注意:务必开启虚拟机CPU虚拟化,否则无法嵌套虚拟机

在这里插入图片描述

不开启后期报错

在这里插入图片描述

安装KVM

配置yum源 --》安装KVM

[root@cloud ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@cloud ~]# vim /etc/yum.repos.d/
[root@cloud ~]# vim /etc/yum.repos.d/
bak/        cloud.repo  
[root@cloud ~]# vim /etc/yum.repos.d/cloud.repo 
[root@cloud ~]# yum clean all
14 files removed
[root@cloud ~]# yum repolist  all
repo id                    repo name                   status
AppStream                  AppStream                   enabled
BaseOS                     BaseOS                      enabled
[root@cloud ~]# yum grouplist 
AppStream                     316 MB/s | 5.7 MB     00:00    
BaseOS                        455 MB/s | 2.2 MB     00:00    
Available Environment Groups:
   Server
   Minimal Install
   Workstation
   Custom Operating System
Installed Environment Groups:
   Server with GUI
   Virtualization Host
Installed Groups:
   Container Management
   Headless Management
Available Groups:
   .NET Core Development
   RPM Development Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Network Servers
   Scientific Support
   Security Tools
   Smart Card Support
   System Tools

[root@cloud ~]# yum groupinstall -y "Virtualization*"   ### 安装的软件包组
Last metadata expiration check: 0:01:01 ago on Sat 05 Aug 2023 03:08:26 PM CST.
No match for group package "insights-client"
No match for group package "centos-release-eula"
Dependencies resolved.
==============================================================
 Package      Arch   Version                  Repo       Size
==============================================================
Installing group/module packages:
 virt-install noarch 2.2.1-3.el8              AppStream  99 k
 virt-top     x86_64 1.0.8-32.el8             AppStream 729 k
 virt-viewer  x86_64 7.0-9.el8                AppStream 397 k
 virt-who     noarch 0.27.6-1.el8             AppStream 247 k
Installing dependencies:
 python3-suds noarch 0.7-0.8.94664ddd46a6.el8 AppStream 242 k
Installing Environment Groups:
 Virtualization Host
                                                             
Installing Groups:
 Virtualization Hypervisor
                                                             
 Virtualization Platform
                                                             
 Virtualization Client
                                                             
 Virtualization Tools
                                                             
 Base                                                        
 Core                                                        
 Standard                                                    

Transaction Summary
==============================================================
Install  5 Packages

Total size: 1.7 M
Installed size: 6.2 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                      1/1 
  Installing       : python3-suds-0.7-0.8.94664ddd46a6.   1/5 
  Installing       : virt-who-0.27.6-1.el8.noarch         2/5 
  Running scriptlet: virt-who-0.27.6-1.el8.noarch         2/5 
  Installing       : virt-viewer-7.0-9.el8.x86_64         3/5 
  Installing       : virt-top-1.0.8-32.el8.x86_64         4/5 
  Installing       : virt-install-2.2.1-3.el8.noarch      5/5 
  Running scriptlet: virt-install-2.2.1-3.el8.noarch      5/5 
  Verifying        : python3-suds-0.7-0.8.94664ddd46a6.   1/5 
  Verifying        : virt-install-2.2.1-3.el8.noarch      2/5 
  Verifying        : virt-top-1.0.8-32.el8.x86_64         3/5 
  Verifying        : virt-viewer-7.0-9.el8.x86_64         4/5 
  Verifying        : virt-who-0.27.6-1.el8.noarch         5/5 
Installed products updated.

Installed:
  python3-suds-0.7-0.8.94664ddd46a6.el8.noarch                
  virt-install-2.2.1-3.el8.noarch                             
  virt-top-1.0.8-32.el8.x86_64                                
  virt-viewer-7.0-9.el8.x86_64                                
  virt-who-0.27.6-1.el8.noarch                                

Complete!

可以通过桌面化图标打开或者命令行

[root@cloud ~]# virt-manager

在这里插入图片描述

检查环境是否正常

在这里插入图片描述

[root@cloud ~]# ifconfig 
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.129.141  netmask 255.255.255.0  broadcast 192.168.129.255
        inet6 fe80::4b45:520e:3195:48b4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9b:91:4d  txqueuelen 1000  (Ethernet)
        RX packets 339  bytes 60656 (59.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 201  bytes 23207 (22.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 48  bytes 4080 (3.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 48  bytes 4080 (3.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
### 有正常
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:bd:e4:f0  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

KVM图形化创建虚拟机

上传ISO

在这里插入图片描述

创建虚拟机

在这里插入图片描述

加载镜像

在这里插入图片描述

配置内存

在这里插入图片描述

添加磁盘

在这里插入图片描述

在这里插入图片描述

能否手工指定存储路径呢?

在指定的路径下首先创建虚拟机所用的磁盘

添加物理磁盘 --> 分区 --> 格式化 --> 挂载 --> 创建磁盘

[root@cloud /]# fdisk /dev/nvme0n2

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): 

Created a new partition 1 of type 'Linux' and of size 20 GiB.
Partition #1 contains a LVM2_member signature.

Do you want to remove the signature? [Y]es/[N]o: p
Do you want to remove the signature? [Y]es/[N]o: y

The signature will be removed by a write command.

Command (m for help): p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x87cd3c01

Device         Boot Start      End  Sectors Size Id Type
/dev/nvme0n2p1       2048 41943039 41940992  20G 83 Linux

Filesystem/RAID signature on partition 1 will be wiped.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[root@cloud /]# mkfs.xfs /dev/nvme0n2p1
meta-data=/dev/nvme0n2p1         isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@cloud /]# mkdir /kvm
[root@cloud /]# cd kvm/
### qcow2为磁盘格式
[root@cloud kvm]# qemu-img create -f qcow2 /kvm/centos1.qcow2 20g
Formatting '/kvm/centos1.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@cloud kvm]# ls
centos1.qcow2

在这里插入图片描述

在这里插入图片描述

创建成功

在这里插入图片描述

安装完成

在这里插入图片描述

在这里插入图片描述

查看虚拟机

[root@cloud ~]# virsh list 
 Id    Name                           State
----------------------------------------------------
 3     centos7.0-2                    running

KVM命令行创建虚拟机

创建磁盘

[root@cloud kvm]# qemu-img create -f qcow2 /kvm/os1.qcow2 20g
Formatting '/kvm/os1.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16

[root@cloud kvm]# ls
os1.qcow2

### 之后,通过图形化创建虚拟机的时候可以选择刚才手工创建的存储磁盘 centos701.qcow2

通过命令行创建虚拟机

### 其实就是把前面图形化点击的步骤转换成了命令行操作。
[root@cloud kvm]# virt-install \
> --name centos702 \
> --memory 2048 \
> --vcpus 1 \
> --disk path=/kvm/os1.qcow2 \
> --location /data/CentOS-7-x86_64-DVD-2009.iso \
> --network network=default \
> --noautoconsole

Starting install...
Retrieving file vmlinuz...                                                                             | 6.5 MB  00:00:00     
Retrieving file initrd.img...                                                                          |  53 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

### 创建成功
[root@cloud kvm]# virsh list
 Id    Name                           State
----------------------------------------------------
 3     centos7.0-2                    running
 4     centos702                      running


手动安装虚拟机

在这里插入图片描述


KVM命令行创建虚拟机-kickstart全自动安装

注意:CentOS 8 版本是没有 kickstart 工具的,可以使用 CentOS 7 版本生成配置文件给 8 版本使用。

使用Centos7生成cfg文件

  • yum install -y system-config-kickstart.noarch --安装工具
  • system-config-kickstart --启动工具,注意禁用udev命名规则 net.ifnames=0 biosdevname=0

进行配置,最后导出 xxx.cfg 文件

  • yum install -y httpd --安装apache
  • systemctl start httpd --启动apache服务,注意关闭防火墙
  • 将工具生成好的配置文件保存。
### 关闭防火墙
[root@cloud html]# systemctl stop firewalld.service        ###  临时关闭
[root@cloud html]# systemctl disable firewalld.service     ### 禁止启用
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@cloud ~]# yum install -y httpd    ### 安装httpd
[root@cloud ~]# systemctl start httpd   ### 开启服务
[root@cloud ~]# cd /var/www/html/       ### 开启服务后,会自动生成目录 /var/www/html/
[root@cloud html]# mv /data/ks01.cfg .  ### 将centos7通过工具生成的cfg文件放到html目录下
[root@cloud html]# ls
ks01.cfg

### 使用虚拟机 ip + 目录文件 直接访问
# 例如 http://192.168.129.141/ks01.cfg

使用Centos8自动安装

### 创建磁盘
[root@cloud html]# qemu-img create -f qcow2 /kvm/centos703.qcow2 20g
Formatting '/kvm/centos703.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16

[root@cloud html]# ls /kvm/
centos703.qcow2  os1.qcow2

### 如果有错误,会在安装过程中卡住
[root@cloud ~]# virt-install \
> --name centos703 \                       ### 虚拟机名称
> --memory 2048 \                          ### 内存
> --vcpus 1 \                              ### cpu
> --disk path=/kvm/centos703.qcow2 \       ### 磁盘
> --location /data/CentOS-7-x86_64-DVD-2009.iso \  ### 镜像
> --network network=default \                      ### 网络
> --noautoconsole \
> -x ks=http://192.168.129.141/ks/ks01.cfg    ### 也可以使用本地文件 ks=/data/ks01.cfg

Starting install...
Retrieving file vmlinuz...                                       | 6.5 MB  00:00:00     
Retrieving file initrd.img...                                    |  53 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

### 使用本地文件,二选其一即可
[root@cloud ~]# virt-install --name centos703 --memory 2048 --vcpus 1 --disk path=/kvm/centos703.qcow2 --location /data/CentOS-7-x86_64-DVD-2009.iso --network network=default --noautoconsole -x ks=/data/ks01.cfg


####  之后即可使用图形化界面进行查看自动化安装

有个问题?虽然是通过命令行可以进行全自动安装,但是因为有图形化界面,所以便于观察虚拟机的具体信息。如果没有图形化界面呢?安装过程及安装完成后根本不知道虚拟机的ip地址,也不知道进行到哪一步了,这时候怎么办?

在kickstart文件中添加 console=ttyS0

bootloader --append=“net.ifnames=0 biosdevname=0 console=ttyS0” --location=mbr

并通过 virsh console xxx 方式连接到虚拟机里面,相当于插上了一根console线。

### 添加 console=ttyS0
[root@cloud ~]# vim /data/ks01.cfg
...
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
# bootloader --append="net.ifnames=0 biosdevname=0" --location=mbr
bootloader --append="net.ifnames=0 biosdevname=0 console=ttyS0" --location=mbr
# Clear the Master Boot Record
zerombr
....

[root@cloud ~]# qemu-img create -f qcow2 /kvm/os333.qcow2 20g


[root@cloud ~]# virt-install --name centos705 --memory 2048 --vcpus 1 --disk path=/kvm/os333.qcow2 --location /data/CentOS-7-x86_64-DVD-2009.iso --network network=default --noautoconsole -x ks=/data/ks01.cfg

Starting install...
Retrieving file vmlinuz...                                       | 6.5 MB  00:00:00     
Retrieving file initrd.img...                                    |  53 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.


[root@cloud ~]# virsh console centos705
Connected to domain centos705
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64

localhost login: root
Password: 


### ctrl + ] 退出

如果安装文件中没有加入,也可在后续虚拟机中加入

[root localhost ]# cd /etc/def auu lt/
[root localhost default]# ls
grub   nss    useradd
[root localhost default]# vi grub a
GRUB TIMEOUT=5
GRUB DISTRIBUTOR="S(sed 's, release .*5, ,g'’/etc/system-re lease )"
GRUB DEFAULT-saved
GRUB DISABLE SUBMENU=true
GRUB_ TERMINAL OUTPUT="'conso le'
# GRUB CMDL INE L INUX= crashkerne l=auto rd . lum. lu=centos/root rd. lum. lu=centos/swap rhgb quiet" 
### 加入到此处 console=ttyS0
GRUB CMDL INE L INUX= crashkerne l=auto rd . lum. lu=centos/root rd. lum. lu=centos/swap rhgb quiet console=ttyS0"
GRUB_ DISABLE RECOUERY="'true"

[root localhost default]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root localhost default]# reboot

测试

[root@cloud ~]# virsh console centos7.0 
Connected to domain centos7.0
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-1160.el7.x86_64 on an x86_64

localhost login: root
Password: 
Last login: Sat Aug  5 06:42:12 on tty1
[root@localhost ~]# 

KVM基本命令总结

[root@cloud ~]# virsh --help              查看帮助
[root@cloud ~]# virsh list --all          列出所有虚拟机(包括正在运行的和关闭的)
[root@cloud ~]# virsh list                列出所有虚拟机(仅运行中的)
[root@cloud ~]# virsh start centos705     --启动虚拟机
[root@cloud ~]# virsh shutdown centos705  -- 关闭虚拟机
[root@cloud ~]# virsh reboot centos705    --重启虚拟机

### 如果虚拟机关不了,强制关闭,非正常关闭
[root@cloud ~]# virsh destroy centos705
### 清除配置
[root@cloud ~]# virsh undefine centos705

# 移除软件包
[root@localhost ~]# yum groupremove -y "Virtualization*"
[root@localhost ~]# rpm -qa | grep virtualization
[root@localhost ~]# systemctl list-units | grep virtualization
[root@localhost ~]# lsmod | grep virtualization

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

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

相关文章

如何基于国标GB28181视频平台EasyGBS国标云服务平台建设智慧环保在线监测系统

EasyGBS平台可提供流媒体接入、处理、转发等服务&#xff0c;支持内网、公网的安防视频监控设备通过国标GB/T28181协议进行视频监控直播。基于视频图像的环保监督管理智能监控系统&#xff0c;结合了计算机技术、AI、云计算、网络传输技术和网络存储技术等先进技术&#xff0c;…

CloudQuery X PolarDB:让数据库管理更简单

前言&#xff1a;8 月 15 日&#xff0c;CloudQuery 数据操作管控平台与阿里云 PolarDB 数据库管理软件&#xff0c;完成产品集成认证测试。也在以下功能上完善了用户使用 PolarDB 的体验&#xff0c;使数据库的管理更加安全高效。 支持在 CloudQuery 中创建连接&#xff0c;便…

如何学习python?比较通义千问、文心一言、ChatGPT给的答案,你就知道啦

通义千问 通义千问是阿里巴巴达摩院自主研发的超大规模语言模型&#xff0c;能够回答问题、创作文字&#xff0c;还能表达观点、撰写代码。通义千问的能力覆盖自然语言处理的多个领域&#xff0c;包括语言理解、文本生成、代码写作等。通义千问在多项性能指标上达到了业界领先水…

springcloudSeata处理分布式事务之1.7.0

1.5.0之后版本发生了很大改变 1.seata安装 1.1官网地址 http://seata.io/zh-cn/ 1.2下载地址 https://github.com/seata/seata/releases 下载的是seata-server-1.7.0.zip 1.3seata相关配置的修改 seata-server-1.7.0\seata\conf下的application.yml进行修改 server:por…

香港服务器怎么解除被封ip?

​  解除被封IP的方法因具体情况而异&#xff0c;需要根据实际情况选择合适的解决方案。本文关于香港服务器被封IP的常见解除方法有以下步骤。 第一步&#xff1a;服务器检查 用户需要立即启动服务器进行检查。或提前申请免费试用。如果IP地址被屏蔽&#xff0c;请联系客户服…

E. Data Structures Fan(思维 + 异或前缀和)

Problem - E - Codeforces 给你一个整数数组 a1, a2,..., an&#xff0c;以及一个由 n 个字符组成的二进制字符串† s。 Augustin 是一个数据结构的爱好者。因此&#xff0c;他请你实现一个可以回答 q 个查询的数据结构。这里有两种类型的查询&#xff1a; Plain Text "1…

3次多项式轨迹规划(PLC SCL代码)

机器人、运动控制等常用的轨迹规划有三次多项式、五次多项式、梯形速度规划,S型速度规划,今天我们主要介绍三次多项式轨迹规划,有关T型和S型轨迹规划大家可以查看下面文章博客,这里不再赘述, 梯形轨迹规划 梯形速度曲线轨迹规划(速度前馈+PID、SCL+ ST代码)_RXXW_Dor的博…

c++中的list容器讲解

文章目录 1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.6 list的迭代器失效 2. list的模拟实现2.1 模拟实现list 3. list与vector的对比 1. list的介绍及使用 1.1 list的介绍 …

ONNX OpenVino TensorRT MediaPipe NCNN Diffusers ComfyUI

框架 和Java生成的中间文件可以在JVM上运行一样&#xff0c;AI技术在具体落地应用方面&#xff0c;和其他软件技术一样&#xff0c;也需要具体的部署和实施的。既然要做部署&#xff0c;那就会有不同平台设备上的各种不同的部署方法和相关的部署架构工具 onnx 在训练模型时可以…

基于SpringBoot的摄影跟拍预定管理系统

基于SpringBootVue的摄影跟拍预定管理系统&#xff0c;前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【系统功能】   角色&#xff1a;管理员、用户…

C++进阶:异常和智能指针

异常 传统错误处理机制是assert断言和errno错误码。两种方式都有很大的局限性&#xff1a; 错误处理机制局限性断言强制终止程序&#xff0c;用户难以接受错误码返回值传递错误码&#xff0c;占用函数返回位置&#xff1b;无法直接展示信息&#xff0c;需查错误码表 1. 异常…

【开发】视频集中存储/云存储/磁盘阵列EasyCVR平台支持分组批量绑定/取消设备

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台视频能力丰富灵活&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传…

服务器给前端实时推送数据轻量化解决方案eventSource+Springboot

一、前端代码 body代码 <div id"result"></div>js代码 $(function(){if(typeof(EventSource) ! "undefined"){var source new EventSource("/demo/getTime");source.onmessage function(event) {console.log(event.data);$(&qu…

MobileViT v3论文超详细解读(翻译+精读)

前言 今天读一下MobileViT v3的论文《MOBILEVITV3: MOBILE-FRIENDLY VISION TRANS- FORMER WITH SIMPLE AND EFFECTIVE FUSION OF LOCAL, GLOBAL AND INPUT FEATURES》这篇论文的实验部分写得还是很不错的&#xff0c;很值得我们借鉴。 论文原文&#xff1a; https://arxiv.…

迷茫

作者&#xff1a;阿秀 InterviewGuide大厂面试真题网站&#xff1a;https://top.interviewguide.cn 小伙伴们大家好&#xff0c;我是阿秀。 过去几年转码之风盛行&#xff0c;有些是通过报考培训班的形式转行&#xff0c;还有一些则是通过考研读研转码这种形式来转行&#xff0…

【Java 基础篇】Java Calendar 类:日期和时间处理指南

在 Java 中&#xff0c;日期和时间的处理是常见的任务之一。为了更灵活地处理日期和时间&#xff0c;Java 提供了 java.util.Calendar 类&#xff0c;它提供了一种面向对象的方式来操作日期和时间。本篇博客将详细介绍 Calendar 类的使用方法&#xff0c;特别是面向基础小白的读…

右值引用,移动语义,完美转发

文章目录 一、什么是左值、右值二、什么是左值引用、右值引用2.1 左值引用2.2 右值引用2.3 对左右值引用本质的讨论 三、右值引用和std::move使用场景3.1 右值引用优化性能&#xff0c;避免深拷贝浅拷贝重复释放深拷贝构造函数移动构造函数 3.2 移动语义&#xff08;move&#…

js案例:选字游戏

目录 效果预览图 游戏规则 整体思路 完整代码 html部分 js部分 效果预览图 游戏规则 1.游戏时间为30s&#xff0c;30s倒计时结束弹出游戏结束和对应的游戏分数。 2.根据中间大字的颜色&#xff0c;点击下面对应的文字。 大字的颜色 点击的文字&#xff08;列如&#…

外汇MT4教程:如何下载和安装MT4交易平台?

对于外汇爱好者来说&#xff0c;MT4交易平台是一个不可或缺的工具。如果您是新手&#xff0c;可能还不太了解如何下载和安装MT4交易平台。本文将为您介绍如何下载和安装MT4交易平台&#xff0c;以及如何使用它进行外汇交易。 第一步&#xff1a;下载MT4交易平台 首先您需要前往…

一款内网信息收集利用工具

FuckDomainMini 简介 这是一款基于java开发Windows的内网信息收集、利用工具 可以节省您的信息收集所花费的&#xff0c;又或者是做免杀所花费的时间 现在这个版本是先行版本&#xff0c;目前先行版只有一个功能&#xff0c;更多的功能还在调试与开发中。 尽情期待&#x…