第五周作业,LVM和TCP
1、磁盘lvm管理,完成下面要求,并写出详细过程:
1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
- 准备两个10G的磁盘sdb,sdc或分区
- [root@linux-node2- ~]# fdisk -l|grep sd
- Disk /dev/sda: 53.7 GB, bytes, sectors
- /dev/sda1 * Linux
- /dev/sda2 8e Linux LVM
- Disk /dev/sdb: 10.7 GB, bytes, sectors
- Disk /dev/sdc: 10.7 GB, bytes, sectors
- 使用sdb和sdc两个磁盘创建PV
- [root@linux-node2- ~]# pvcreate /dev/sd{b,c}
- Physical volume "/dev/sdb" successfully created.
- Physical volume "/dev/sdc" successfully created.
- [root@linux-node2- ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sda2 centos lvm2 a-- .80g
- /dev/sdb lvm2 --- .00g .00g
- /dev/sdc lvm2 --- .00g .00g
- 创建名为testvg的VG,要求PE大小 为16MB
- [root@linux-node2- ~]# vgcreate -s 16M testvg /dev/sd{b,c}
- Volume group "testvg" successfully created
- [root@linux-node2- ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- centos wz--n- .80g
- testvg wz--n- <.97g <.97g
- 在卷组中创建大小为5G的逻 辑卷testlv
- [root@linux-node2- ~]# lvcreate -n testlv -L 5G testvg
- Logical volume "testlv" created.
- [root@linux-node2- ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root centos -wi-ao---- .80g
- swap centos -wi-ao---- .00g
- testlv testvg -wi-a----- .00g
- 挂载至/users目录
- [root@linux-node2- ~]# mkdir /users
- [root@linux-node2- ~]# mkfs.xfs /dev/mapper/testvg-testlv
- [root@linux-node2- ~]# mount /dev/mapper/testvg-testlv /users
- 永久挂载
- [root@linux-node2- ~]# blkid
- /dev/mapper/testvg-testlv: UUID="c20abbbc-6714-4bb3-b6b3-039e49ebb1ad" TYPE="xfs"
- [root@linux-node2- ~]# vim /etc/fstab
- 添加
- UUID=c20abbbc--4bb3-b6b3-039e49ebb1ad /users xfs defaults
- [root@linux-node2- ~]# mount -a
- [root@linux-node2- ~]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/centos-root 48G .4G 39G % /
- devtmpfs 899M 899M % /dev
- tmpfs 911M 911M % /dev/shm
- tmpfs 911M 9.6M 902M % /run
- tmpfs 911M 911M % /sys/fs/cgroup
- /dev/sda1 197M 120M 77M % /boot
- tmpfs 183M 183M % /run/user/
- /dev/mapper/testvg-testlv .0G 33M .0G % /users
[root@linux-node2-202 ~]# vgdisplay testvg|egrep -io "(pe|vg).*size.*"
VG Size <19.97 GiB
PE Size 16.00 MiB
PE / Size 320 / 5.00 GiB
PE / Size 958 / <14.97 GiB
2) 扩展testlv至7G,要求archlinux用户的文件不能丢失
- 创建archlinux用户
- [root@linux-node2- ~]# useradd archlinux -d /users/archlinux
- [root@linux-node2- ~]# su - archlinux
- [archlinux@linux-node2- ~]$ pwd
- /users/archlinux
- [archlinux@linux-node2- ~]$ cp -R /var/log .
- [archlinux@linux-node2- ~]$ tree
- .
- └── log
- ├── anaconda
- ├── audit
- ├── cobbler
- │ ├── anamon
- │ ├── cobbler.log
- │ ├── install.log
- │ ├── kicklog
- │ ├── syslog
- │ └── tasks
- │ ├── --22_195442_get_loaders.log
- │ ├── --22_195512_sync.log
- │ ├── --22_195653_sync.log
- │ ├── --22_195950_import.log
- │ ├── --22_200256_import.log
- │ ├── --22_200523_import.log
- │ └── --22_200652_sync.log
- ├── dmesg
- ├── dmesg.old
- ├── firewalld
- ├── grubby_prune_debug
- ├── httpd
- ├── lastlog
- ├── rhsm
- ├── tuned
- │ └── tuned.log
- ├── vmware-vgauthsvc.log.
- ├── vmware-vmsvc.log
- └── wtmp
- directories, files
- [archlinux@linux-node2- ~]$ du -sh log
- 2.2M log
- 扩展testlv至7G,要求archlinux用户的文件不能丢失
- [root@linux-node2- ~]# vgdisplay testvg|grep Size
- VG Size <19.97 GiB
- PE Size 16.00 MiB
- Alloc PE / Size / 5.00 GiB
- Free PE / Size / <14.97 GiB
- [root@linux-node2- ~]# lvdisplay /dev/testvg/testlv|grep Size
- LV Size 5.00 GiB
- 可以看到当前的LV大小为5G,VG可分配的大小为15G
- 需要再扩容2G
- [root@linux-node2- ~]# lvextend -L +2G /dev/mapper/testvg-testlv
- Size of logical volume testvg/testlv changed from 5.00 GiB ( extents) to 7.00 GiB ( extents).
- Logical volume testvg/testlv successfully resized.
- [root@linux-node2- ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root centos -wi-ao---- .80g
- swap centos -wi-ao---- .00g
- testlv testvg -wi-ao---- .00g
- [root@linux-node2- ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- centos wz--n- .80g
- testvg wz--n- <.97g <.97g
- [root@linux-node2- ~]# tree /users/archlinux/
- /users/archlinux/
- └── log
- ├── anaconda
- ├── audit
- ├── cobbler
- │ ├── anamon
- │ ├── cobbler.log
- │ ├── install.log
- │ ├── kicklog
- │ ├── syslog
- │ └── tasks
- │ ├── --22_195442_get_loaders.log
- │ ├── --22_195512_sync.log
- │ ├── --22_195653_sync.log
- │ ├── --22_195950_import.log
- │ ├── --22_200256_import.log
- │ ├── --22_200523_import.log
- │ └── --22_200652_sync.log
- ├── dmesg
- ├── dmesg.old
- ├── firewalld
- ├── grubby_prune_debug
- ├── httpd
- ├── lastlog
- ├── rhsm
- ├── tuned
- │ └── tuned.log
- ├── vmware-vgauthsvc.log.
- ├── vmware-vmsvc.log
- └── wtmp
- directories, files
- [root@linux-node2- ~]# du -sh /users/archlinux/
- 2.3M /users/archlinux/
3) 收缩testlv至3G,要求archlinux用户的文件不能丢失
- 缩减逻辑卷需要先取消挂载,再进行操作
- [root@linux-node2- ~]# umount /users
- [root@linux-node2- ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root centos -wi-ao---- .80g
- swap centos -wi-ao---- .00g
- testlv testvg -wi-a----- .00g
- #Xfs系统不支持缩减
- 检查文件完整性
- [root@linux-node2- ~]# e2fsck -f -y /dev/mapper/testvg-testlv
- e2fsck 1.42. (-Dec-)
- Pass : Checking inodes, blocks, and sizes
- Pass : Checking directory structure
- Pass : Checking directory connectivity
- Pass : Checking reference counts
- Pass : Checking group summary information
- /dev/mapper/testvg-testlv: / files (0.0% non-contiguous), / blocks
- 收缩testlv至3G,要求archlinux用户的文件不能丢失
- 先设置文件系统大小
- [root@linux-node2- ~]# resize2fs /dev/mapper/testvg-testlv 3G
- resize2fs 1.42. (-Dec-)
- Resizing the filesystem on /dev/mapper/testvg-testlv to (4k) blocks.
- The filesystem on /dev/mapper/testvg-testlv is now blocks long.
- 缩减逻辑卷
- [root@linux-node2- ~]# lvreduce -L 3G /dev/mapper/testvg-testlv
- WARNING: Reducing active logical volume to 3.00 GiB.
- THIS MAY DESTROY YOUR DATA (filesystem etc.)
- Do you really want to reduce testvg/testlv? [y/n]: y
- Size of logical volume testvg/testlv changed from 7.00 GiB ( extents) to 3.00 GiB ( extents).
- Logical volume testvg/testlv successfully resized.
- [root@linux-node2- ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root centos -wi-ao---- .80g
- swap centos -wi-ao---- .00g
- testlv testvg -wi-a----- .00g
- [root@linux-node2- ~]# lvdisplay /dev/testvg/testlv|grep Size
- LV Size 3.00 GiB
- [root@linux-node2- ~]# tree /users/archlinux/
- /users/archlinux/
- └── log
- ├── anaconda
- ├── audit
- ├── cobbler
- │ ├── anamon
- │ ├── cobbler.log
- │ ├── install.log
- │ ├── kicklog
- │ ├── syslog
- │ └── tasks
- │ ├── --22_195442_get_loaders.log
- │ ├── --22_195512_sync.log
- │ ├── --22_195653_sync.log
- │ ├── --22_195950_import.log
- │ ├── --22_200256_import.log
- │ ├── --22_200523_import.log
- │ └── --22_200652_sync.log
- ├── dmesg
- ├── dmesg.old
- ├── firewalld
- ├── grubby_prune_debug
- ├── httpd
- ├── lastlog
- ├── rhsm
- ├── tuned
- │ └── tuned.log
- ├── vmware-vgauthsvc.log.
- ├── vmware-vmsvc.log
- └── wtmp
- directories, files
- [root@linux-node2- ~]# du -sh /users/archlinux/
- 2.3M /users/archlinux/
4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
- [root@linux-node2- ~]# lvcreate -n testlv_snap -s -p r -L 5G /dev/mapper/testvg-testlv
- lvcreate 创建 名称为testlv_snap 快照 属性-只读 容量5G 目标/dev/mapper/testvg-testlv
- Reducing COW size 5.00 GiB down to maximum usable size <3.02 GiB.
- Logical volume "testlv_snap" created.
- [root@linux-node2- ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root centos -wi-ao---- .80g
- swap centos -wi-ao---- .00g
- testlv testvg owi-aos--- .00g
- testlv_snap testvg sri-a-s--- <.02g testlv 0.01
- [root@linux-node2- ~]# lvdisplay /dev/test*|grep snap
- LV snapshot status source of
- testlv_snap [active]
- LV Path /dev/testvg/testlv_snap
- LV Name testlv_snap
- LV snapshot status active destination for testlv
- Allocated to snapshot 0.01%
- [root@linux-node2- ~]# blkid |grep testvg
- /dev/mapper/testvg-testlv: UUID="fe421f83-f353-4ad3-a571-47e808c5dd5d" TYPE="ext4"
- /dev/mapper/testvg-testlv_snap: UUID="fe421f83-f353-4ad3-a571-47e808c5dd5d" TYPE="ext4"
- 可以看到两个uuid相同
- 验证快照的功能
- 挂载快照
- [root@linux-node2- ~]# mount /dev/mapper/testvg-testlv_snap /mnt/snap
- mount: /dev/mapper/testvg-testlv_snap is write-protected, mounting read-only
- [root@linux-node2- ~]# tree /mnt/snap
- /mnt/snap
- ├── archlinux
- │ └── log
- │ ├── anaconda
- │ ├── audit
- │ ├── cobbler
- │ │ ├── anamon
- │ │ ├── cobbler.log
- │ │ ├── install.log
- │ │ ├── kicklog
- │ │ ├── syslog
- │ │ └── tasks
- │ │ ├── --22_195442_get_loaders.log
- │ │ ├── --22_195512_sync.log
- │ │ ├── --22_195653_sync.log
- │ │ ├── --22_195950_import.log
- │ │ ├── --22_200256_import.log
- │ │ ├── --22_200523_import.log
- │ │ └── --22_200652_sync.log
- │ ├── dmesg
- │ ├── dmesg.old
- │ ├── firewalld
- │ ├── grubby_prune_debug
- │ ├── httpd
- │ ├── lastlog
- │ ├── rhsm
- │ ├── tuned
- │ │ └── tuned.log
- │ ├── vmware-vgauthsvc.log.
- │ ├── vmware-vmsvc.log
- │ └── wtmp
- └── lost+found
- directories, files
- [root@linux-node2- ~]# du -sh /mnt/snap
- 2.3M /mnt/snap
- 删除源目录中的文件
- [root@linux-node2- ~]# rm -rf /users/archlinux/log/httpd/
- [root@linux-node2- ~]# rm -f /users/archlinux/log/*
- [root@linux-node2-202 ~]# tree /users/archlinux/
- /users/archlinux/
- └── log
- ├── anaconda
- ├── audit
- ├── cobbler
- │ ├── anamon
- │ ├── cobbler.log
- │ ├── install.log
- │ ├── kicklog
- │ ├── syslog
- │ └── tasks
- │ ├── 2019-07-22_195442_get_loaders.log
- │ ├── 2019-07-22_195512_sync.log
- │ ├── 2019-07-22_195653_sync.log
- │ ├── 2019-07-22_195950_import.log
- │ ├── 2019-07-22_200256_import.log
- │ ├── 2019-07-22_200523_import.log
- │ └── 2019-07-22_200652_sync.log
- ├── rhsm
- └── tuned
- └── tuned.log
- 10 directories, 10 files
- [root@linux-node2-202 ~]# du -sh /users/archlinux/
- 2.0M /users/archlinux/
- 还原快照
- 取消源和快照的挂载
- [root@linux-node2-202 ~]# umount /users
- [root@linux-node2-202 ~]# umount /mnt/snap
- 还原快照
- [root@linux-node2-202 ~]# lvconvert --merge /dev/mapper/testvg-testlv_snap
- Merging of volume testvg/testlv_snap started.
- testvg/testlv: Merged: 100.00%
- 验证数据
- [root@linux-node2-202 ~]# du -sh /users/archlinux/
- 2.3M /users/archlinux/
- [root@linux-node2-202 ~]# du -sh /users/archlinux/
- 2.3M /users/archlinux/
- [root@linux-node2-202 ~]# tree /users/archlinux/
- /users/archlinux/
- └── log
- ├── anaconda
- ├── audit
- ├── cobbler
- │ ├── anamon
- │ ├── cobbler.log
- │ ├── install.log
- │ ├── kicklog
- │ ├── syslog
- │ └── tasks
- │ ├── 2019-07-22_195442_get_loaders.log
- │ ├── 2019-07-22_195512_sync.log
- │ ├── 2019-07-22_195653_sync.log
- │ ├── 2019-07-22_195950_import.log
- │ ├── 2019-07-22_200256_import.log
- │ ├── 2019-07-22_200523_import.log
- │ └── 2019-07-22_200652_sync.log
- ├── dmesg
- ├── dmesg.old
- ├── firewalld
- ├── grubby_prune_debug
- ├── httpd
- ├── lastlog
- ├── rhsm
- ├── tuned
- │ └── tuned.log
- ├── vmware-vgauthsvc.log.0
- ├── vmware-vmsvc.log
- └── wtmp
- 11 directories, 18 files
- 创建快照(XFS)系统
- lvcreate -n lv_mysql_snap -s -L 1G -p r /dev/mapper/testvg-testlv
- mount /dev/mapper/testvg-testlv /mnt/snap/ #直接挂载不上去
- mount -o nouuid /dev/mapper/testvg-testlv_snap /mnt/snap/ #加上nouuid选项
- 还原快照(XFS)
- 取消所有相关挂载
- lvconvert --merge /dev/mapper/testvg-testlv_snap
2、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
- 创建3个1G的分区
- [root@linux-node2- ~]# fdisk -l /dev/sdb
- Disk /dev/sdb: 10.7 GB, bytes, sectors
- Units = sectors of * = bytes
- Sector size (logical/physical): bytes / bytes
- I/O size (minimum/optimal): bytes / bytes
- Disk label type: dos
- Disk identifier: 0xdf25804a
- Device Boot Start End Blocks Id System
- /dev/sdb1 Linux
- /dev/sdb2 Linux
- /dev/sdb3 Linux
- 创建raid sdb3 作为空闲盘
- [root@linux-node2- ~]# mdadm -C -a yes /dev/md0 -l -n /dev/sdb{,} -x -c /dev/sdb3
- [root@linux-node2- ~]# mdadm -D /dev/md0
- /dev/md0:
- Version : 1.2
- Creation Time : Tue Jul ::
- Raid Level : raid1
- Array Size : (1022.00 MiB 1071.64 MB)
- Used Dev Size : (1022.00 MiB 1071.64 MB)
- Raid Devices :
- Total Devices :
- Persistence : Superblock is persistent
- Update Time : Tue Jul ::
- State : clean
- Active Devices :
- Working Devices :
- Failed Devices :
- Spare Devices :
- Consistency Policy : resync
- Name : linux-node2-: (local to host linux-node2-)
- UUID : 15c85ba6:1df98782:c64f8908:3eee284d
- Events :
- Number Major Minor RaidDevice State
- active sync /dev/sdb1
- active sync /dev/sdb2
- - spare /dev/sdb3
- 模拟sdb1故障
- [root@linux-node2- ~]# mdadm /dev/md0 -f /dev/sdb1
- mdadm: set /dev/sdb1 faulty in /dev/md0
- [root@linux-node2- ~]# mdadm -D /dev/md0
- /dev/md0:
- Version : 1.2
- Creation Time : Tue Jul ::
- Raid Level : raid1
- Array Size : (1022.00 MiB 1071.64 MB)
- Used Dev Size : (1022.00 MiB 1071.64 MB)
- Raid Devices :
- Total Devices :
- Persistence : Superblock is persistent
- Update Time : Tue Jul ::
- State : clean
- Active Devices :
- Working Devices :
- Failed Devices :
- Spare Devices :
- Consistency Policy : resync
- Name : linux-node2-: (local to host linux-node2-)
- UUID : 15c85ba6:1df98782:c64f8908:3eee284d
- Events :
- Number Major Minor RaidDevice State
- active sync /dev/sdb3
- active sync /dev/sdb2
- - faulty /dev/sdb1
- 将sdb1从raid1中删除
- [root@linux-node2- ~]# mdadm /dev/md0 -r /dev/sdb1
- mdadm: hot removed /dev/sdb1 from /dev/md0
- [root@linux-node2- ~]# mdadm -D /dev/md0
- /dev/md0:
- Version : 1.2
- Creation Time : Tue Jul ::
- Raid Level : raid1
- Array Size : (1022.00 MiB 1071.64 MB)
- Used Dev Size : (1022.00 MiB 1071.64 MB)
- Raid Devices :
- Total Devices :
- Persistence : Superblock is persistent
- Update Time : Tue Jul ::
- State : clean
- Active Devices :
- Working Devices :
- Failed Devices :
- Spare Devices :
- Consistency Policy : resync
- Name : linux-node2-: (local to host linux-node2-)
- UUID : 15c85ba6:1df98782:c64f8908:3eee284d
- Events :
- Number Major Minor RaidDevice State
- active sync /dev/sdb3
- active sync /dev/sdb2
- 将sdb1添加回raid1
- [root@linux-node2- ~]# mdadm /dev/md0 -a /dev/sdb1
- mdadm: added /dev/sdb1
- [root@linux-node2- ~]# mdadm -D /dev/md0
- /dev/md0:
- Version : 1.2
- Creation Time : Tue Jul ::
- Raid Level : raid1
- Array Size : (1022.00 MiB 1071.64 MB)
- Used Dev Size : (1022.00 MiB 1071.64 MB)
- Raid Devices :
- Total Devices :
- Persistence : Superblock is persistent
- Update Time : Tue Jul ::
- State : clean
- Active Devices :
- Working Devices :
- Failed Devices :
- Spare Devices :
- Consistency Policy : resync
- Name : linux-node2-: (local to host linux-node2-)
- UUID : 15c85ba6:1df98782:c64f8908:3eee284d
- Events :
- Number Major Minor RaidDevice State
- active sync /dev/sdb3
- active sync /dev/sdb2
- - spare /dev/sdb1
3、简述TCP链接建立和断开过程
https://www.cnblogs.com/bj-mr-li/p/11106397.html
https://www.cnblogs.com/bj-mr-li/p/11106390.html
- TCP建立连接的过程叫三次握手
- 三次握手
- 第一次,客户端发起SYN=,seq=x,给服务端,并将状态为SYN-SEND
- 第二次,服务端收到第一次请求,回应SYN=,ACK=,seq=x,状态为SYN-RECV
- 第三次,客户端收到服务端的回包,回应ACK=,seq=x+ seq=y+,状态为ESTAB
- 客户端收到回包后连接建立,开始发送数据
- TCP断开连接的过程叫四次挥手,比三次握手多了一个确认过程
- 第一次,客户端发送FIN=,seq=x给服务端,状态由ESTAB修改为FIN-WAIT1
- 第二次,服务端收到后,回应ACK=, seq=y,ack=x+,状态为CLOSE-WAIT,通知进程关闭连接,客户端状态为FIN-WAIT2
- 第三次,服务端收完所有数据后,发送FIN=,ACK=,seq=z,ack=x+,状态为LAST-ACK
- 第四次,客户端收到后,等待2MSL(2倍传送时间)后,发送ACK=,seq=x+,ack=z+,连接关闭
4、简述TCP和UDP的区别
- :TCP基于连接,UDP基于无连接。
- :TCP对系统资源要求高,UDP少。
- :TCP是基于字节流的,UDP是数据报文模式。
- :TCP复杂,UDP简单。
- :TCP有验证过程,是可靠的连接,UDP无验证过程,是不可靠的连接
第五周作业,LVM和TCP的更多相关文章
- 2018-2019-1 20189221《Linux内核原理与分析》第五周作业
2018-2019-1 20189221<Linux内核原理与分析>第五周作业 实验四 实验过程 当用户态进程调用一个系统调用时,cpu切换到内核态并开始执行一个内核函数. 在Linux中 ...
- 2017-2018-1 JaWorld 第四、五周作业
2017-2018-1 JaWorld 第四.五周作业 两周工作内容 小组讨论并确定最终的app雏形 合作完成需求说明书 工作分工 成员 分工 比例 陈是奇 1.引言 8% 马平川 2.1-2.5 产 ...
- 2017-2018-1 JAVA实验站 第四、五周作业
2017-2018-1 JAVA实验站 第四.五周作业 JAVA实验站小组成员 学号 名字 职务 20162318 张泰毓 组长 20162303 石亚鑫 组员 20162304 张浩林 组员 201 ...
- 2017-2018-1 20179205《Linux内核原理与设计》第五周作业
<Linux内核原理与设计>第五周作业 视频学习及操作分析 一.用户态.内核态和中断 内核态在CPU执行中对应高执行级别,执行级别为0级,具有特权指令,可以访问任意物理地址:用户态执行级别 ...
- 第五周作业:markdown语法小总结
第五周作业 markdown语法总结 早就想写这么一个文章了,关于markdown的语法,因为最近使用的比较多,所以特地总结一下 一,标题 首先要介绍的就是标题, 标题一共有六级 # h1 ## h2 ...
- 2019-2020-1 20199329《Linux内核原理与分析》第五周作业
<Linux内核原理与分析>第五周作业 一.上周问题总结: 虚拟机将c文件汇编成汇编文件时忘记添加include<stdio.h> gdb跟踪汇编过程不熟练 二.本周学习内容: ...
- 2019春第五周作业Compile Summarize
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 在这里 我在这个课程的目标是 能够精通关于数组内部运作原理 这个作业在哪个具体方面帮助我实现目标 如何输出一行的连续字符 参考文献与网址 ...
- 第四周预习作业and第五周作业
第四周预习作业 统计一行文本的单词个数 本题目要求编写程序统计一行字符中单词的个数.所谓"单词"是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个. 输入格式: 输入 ...
- 20162327WJH第五周作业
学号 20162327 <程序设计与数据结构>第5周学习总结 教材学习内容总结 1.java是一种面向对象的语言.面向对象是一种编程方法.更是一种思维方式. 2.面向对象编程的终极目标是消 ...
- 第五周作业总结(内含用Junit测试ArrayStack和LinkedStack课堂练习报告)
---恢复内容开始--- 学号 20162310<程序设计与数据结构>第五周学习总结 教材学习内容总结 集合分为线性集合(集合中的元素排成一行)和非线性集合(按不同于一行的方式来组织元素, ...
随机推荐
- (转)Java8内存模型-永久代(PermGen)和元空间(Metaspace)
原文链接:https://www.cnblogs.com/paddix/p/5309550.html 一.JVM内存模型 根据jvm规范,jvm内存共分为虚拟机栈.堆.方法区.程序计算器.本地方法栈五 ...
- Tableau Sheet中的操作
如果想要给数据排名,例如给饼图中的数据排名 1 创建一个Rank 描述为INDEX()的测度 2.将RANK用Label形式显示并且编辑计算方法选择特定的属性. 属性本身也有可以快速计算的一些方式. ...
- 第二章 Vue快速入门-- 19 v-if和v-show的使用和特点
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- vsftpd启动报错:vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable
vsftpd启动报错:vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable 今天在调试centos vsftp的时 ...
- 关于system.timer的使用
private System.Timers.Timer _timer = null; if (_timer == null) { _timer = new System.Timers.Timer(); ...
- Vue中如何使用axios请求跨域数据
1.axios不支持jsonp,因为axios的作者觉得jsonp不太友好,推荐用CORS方式更为干净: 2.在使用axios发送请求时,服务器端设置 res.header("Access- ...
- Java架构师面试题——JVM性能调优
JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数. 1.Full GC 会对整个堆进行整理,包括Young.Tenured和Perm.Full GC因为需要对 ...
- linux运维、架构之路-K8s滚动更新及回滚
一.滚动更新 应用程序一次只更新一小部分副本,更新成功后,再更新更多的副本,最终完成所有副本的更新. 滚动更新的优点:零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 1. ...
- 51 Nod 1073 约瑟夫环
1073 约瑟夫环 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人 ...
- LA 2797
题目链接 题意:训练指南283页: #include <iostream> #include <cstdio> #include <cstring> #includ ...