Arrays的用法(附10道练习题)

Java中的Arrays类是Java标准库中的一个工具类,它提供了一系列静态方法来操作数组,这些方法可以实现对数组的搜索、排序、比较和填充等操作。


目录

一、Arrays.toString()

二、Arrays.sort()

三、Arrays.equals()

四、Arrays.asList()

五、Arrays.copyOf()

六、Arrays.fill()

七、Arrays.binarySearch()

八、Arrays.stream()

九、Arrays练习

1. 给定一个整型数组,使用Arrays类的方法将其所有元素填充为指定的值。

2. 给定两个整型数组,使用Arrays类的方法比较它们是否相等。

3. 给定一个整型数组,使用Arrays类的方法将其复制到一个新的数组中。

4. 给定一个整型二维数组,使用Arrays类的方法对其进行排序,按照每行第一个元素升序排序。

5. 给定一个已排序的整型数组,查找特定元素的位置。如果元素存在,则返回其索引;如果不存在,则返回一个负数。

6. 给定一个整型数组,将数组的前三个元素填充为3。

7. 给定一个整型数组,使用Arrays.copyOf方法创建一个新的数组,新数组是原数组的一个副本,但是长度是原数组长度的两倍。

8. 给定一个整型数组,将该数组的所有元素乘以2,赋值给一个新数组。

9. 合并两个int[]类型的数组,得到一个int[]类型的数组,再转换成List类型

10. 给定一个整型数组,去除数组中的重复元素,并返回一个没有重复元素的新数组,并求出最大值和最小值。


一、Arrays.toString()

  • 对于多维数组,直接调用 Arrays.toString() 只会打印子数组的引用,而不是内容。因此,需要遍历多维数组,并对每个子数组分别调用 Arrays.toString()。
import java.util.Arrays;// 定义一个成绩类,包含学生ID、语文成绩、数学成绩以及总分
class Score {public int id;        // 学生IDpublic int Chinese;   // 语文成绩public int Math;      // 数学成绩public int sum;       // 总分// 构造方法,初始化学生ID、语文成绩、数学成绩,并计算总分Score(int id, int Chinese, int Math) {this.id = id;this.Chinese = Chinese;this.Math = Math;this.sum = Chinese + Math; // 计算总分}// 重写toString方法,方便输出成绩信息@Overridepublic String toString() {return "Score{" +"id=" + id +", Chinese=" + Chinese +", Math=" + Math +", sum=" + sum +"}";}
}public class Main {public static void main(String[] args) {// 定义一个基本类型数组并初始化int[] intArray = {1, 2, 3, 4, 5};// 使用Arrays.toString()打印数组内容System.out.println(Arrays.toString(intArray)); // 输出: [1, 2, 3, 4, 5]// 定义一个二维数组并初始化int[][] multiArray = {{1, 2}, {3, 4}};// 打印二维数组的引用,不是内容System.out.println(Arrays.toString(multiArray)); // 输出: [[I@49e4cb85, [I@2133c8f8]// 遍历二维数组并打印每个一维数组的内容for (int[] arr : multiArray) {System.out.println(Arrays.toString(arr));// 输出每个一维数组的内容// [1, 2]// [3, 4]}// 定义一个成绩对象数组并初始化Score[] scoreArray = {new Score(1, 90, 80),new Score(2, 95, 86)};// 使用Arrays.toString()打印成绩对象数组的内容System.out.println(Arrays.toString(scoreArray)); // 输出: [Score{id=1, Chinese=90, Math=80, sum=170}, Score{id=2, Chinese=95, Math=86, sum=181}]}
}

二、Arrays.sort()

  • sort(Object[] a): 对整个数组进行排序。
  • sort(T[] a, int fromIndex, int toIndex): 对数组的指定范围进行排序。
import java.util.Arrays;
import java.util.Collections;// 定义一个成绩类,包含学生ID、语文成绩、数学成绩以及总分
class Score {public int id;        // 学生IDpublic int Chinese;   // 语文成绩public int Math;      // 数学成绩public int sum;       // 总分// 构造方法,初始化学生ID、语文成绩、数学成绩,并计算总分Score(int id, int Chinese, int Math) {this.id = id;this.Chinese = Chinese;this.Math = Math;this.sum = Chinese + Math; // 计算总分}// 重写toString方法,方便输出成绩信息@Overridepublic String toString() {return "Score{" +"id=" + id +", Chinese=" + Chinese +", Math=" + Math +", sum=" + sum +"}";}
}public class Main {public static void main(String[] args) {// 对基本类型的数组进行排序int[] intArr = {1, 3, 5, 7, 6, 4, 2};Arrays.sort(intArr); // 使用Arrays.sort进行升序排序System.out.println(Arrays.toString(intArr)); // 输出排序后的数组,结果为[1, 2, 3, 4, 5, 6, 7]// 对包装类型的数组进行降序排序Integer[] integerArr = {1, 3, 5, 7, 6, 4, 2};Arrays.sort(integerArr, Collections.reverseOrder()); // 使用Collections.reverseOrder进行降序排序System.out.println(Arrays.toString(integerArr)); // 输出排序后的数组,结果为[7, 6, 5, 4, 3, 2, 1]// 对成绩对象数组进行排序Score[] scoreArr = {new Score(1, 90, 80),new Score(2, 95, 86),new Score(3, 95, 100),new Score(4, 80, 90)};// 按照总分降序排序,如果总分一样,按照语文成绩降序排序Arrays.sort(scoreArr,(s1, s2) -> s2.sum - s1.sum == 0 ? s2.Chinese - s1.Chinese : s2.sum - s1.sum);// 遍历并输出排序后的成绩数组for (var i : scoreArr) {System.out.println(i);}// 输出结果:// Score{id=3, Chinese=95, Math=100, sum=195}// Score{id=2, Chinese=95, Math=86, sum=181}// Score{id=1, Chinese=90, Math=80, sum=170}// Score{id=4, Chinese=80, Math=90, sum=170}}
}

三、Arrays.equals()

import java.util.Arrays;public class Main {public static void main(String[] args) {// 创建两个整型数组int[] array1 = {1, 2, 3, 4, 5};int[] array2 = {1, 2, 3, 4, 5};int[] array3 = {5, 4, 3, 2, 1};// 使用 Arrays.equals 比较两个数组boolean equals = Arrays.equals(array1, array2);System.out.println("array1 和 array2 是否相等: " + equals); // trueequals = Arrays.equals(array1, array3);System.out.println("array1 和 array3 是否相等: " + equals); // false}
}

四、Arrays.asList()

import java.util.Arrays;
import java.util.List;public class Main {public static void main(String[] args) {// 使用 Arrays.asList 将数组转换为 ListInteger[] array = {1, 2, 3, 4, 5};List<Integer> list1 = Arrays.asList(array); //可改元素,不能增加和删除// 输出转换后的 ListSystem.out.println(list1); // 输出 [1, 2, 3, 4, 5]// 尝试修改 List 中的一个元素list1.set(0, 10); // 这是允许的,因为它修改了原始数组中的元素System.out.println(list1); // 输出 [10, 2, 3, 4, 5]// 尝试添加或删除元素将抛出异常// list1.add(6); // 抛出 UnsupportedOperationException// list1.remove(1); // 抛出 UnsupportedOperationException// 比较Arrays.asList 和 List.ofList<Integer> list2 = List.of(array);// 输出创建的 ListSystem.out.println(list2); // 输出 [1, 2, 3, 4, 5]// 尝试修改 List 中的一个元素将抛出异常// list2.set(0, 10); // 抛出 UnsupportedOperationException// 尝试添加或删除元素也将抛出异常// list2.add(6); // 抛出 UnsupportedOperationException// list2.remove(1); // 抛出 UnsupportedOperationException}
}

五、Arrays.copyOf()

  • int[] copyOf(int[] original, int newLength):从original数组中截取长度为newLength的新数组
  •  int[] copyOfRange(int[] original, int from, int to):从original数组中截取[from,to)新数组
import java.util.Arrays;public class Main {public static void main(String[] args) {// 示例1:复制基本数据类型数组int[] originalArray = {1, 2, 3, 4, 5};int[] newArray = Arrays.copyOf(originalArray, 10);                   // 新数组长度为10System.out.println("新数组(基本数据类型): " + Arrays.toString(newArray));        //[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]// 示例2:复制对象数组String[] originalStringArray = {"Apple", "Banana", "Cherry"};String[] newStringArray = Arrays.copyOf(originalStringArray, 5);     // 新数组长度为5System.out.println("新数组(对象数组): " + Arrays.toString(newStringArray));     //[Apple, Banana, Cherry, null, null]// 示例3:新数组长度小于原始数组int[] originalArray2 = {1, 2, 3, 4, 5};int[] newArray2 = Arrays.copyOf(originalArray2, 3);                  // 新数组长度为3System.out.println("新数组(部分复制): " + Arrays.toString(newArray2));          //[1, 2, 3]// 示例4:使用Arrays.copyOfRange复制数组的一部分int[] newArray3 = Arrays.copyOfRange(originalArray2, 1, 4);System.out.println("新数组(copyOfRange): " + Arrays.toString(newArray3));     //[2, 3, 4]}
}

六、Arrays.fill()

  • void fill(Object[] a, Object val):填充数组
  • void fill(Object[] a, int fromIndex, int toIndex, Object val):填充数组[fromIndex,toIndex)
import java.util.Arrays;public class Main {public static void main(String[] args) {// 创建一个整型数组int[] array = new int[10];// 使用 fill 方法将整个数组填充为 5Arrays.fill(array, 5);System.out.println("填充整个数组: " + Arrays.toString(array)); // [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]// 使用 fill 方法将数组的索引 3 到索引 7 的元素填充为 8Arrays.fill(array, 3, 8, 8);System.out.println("填充部分数组: " + Arrays.toString(array)); // [5, 5, 5, 8, 8, 8, 8, 8, 5, 5]}
}

七、Arrays.binarySearch()

(1)int binarySearch(Object[] a, Object key):

  • 在数组a中查找key。
  • 如果找到key,则返回其在数组中的索引。
  • 如果未找到key,则返回-(insertion point) - 1,其中insertion point是key应该插入的位置。

(2)int binarySearch(int[] a, int fromIndex, int toIndex, int key):

  • 在数组a的子数组[fromIndex, toIndex)中查找key。
  • 如果找到key,则返回其在子数组中的索引。
  • 如果未找到key,则返回-(insertion point) - 1,其中insertion point是key应该插入的位置。
import java.util.Arrays;public class Main {public static void main(String[] args) {// 创建并初始化一个已排序的整型数组int[] array = {1, 3, 5, 7, 9, 11, 13, 15};// 查找元素7int index1 = Arrays.binarySearch(array, 7);System.out.println(index1); // 3// 在子数组[2, 6)中[5, 7, 9, 11]查找元素5int index2 = Arrays.binarySearch(array, 2, 6, 5);System.out.println(index2); // 2// 查找一个不存在的元素,比如4int index3 = Arrays.binarySearch(array, 4);System.out.println(index3); // 应输出一个负数,表示插入点}
}

八、Arrays.stream()

import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.OptionalDouble;
import java.util.OptionalInt;public class Main {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};// 案例1: 计算数组元素的总和int sum = Arrays.stream(numbers).sum();System.out.println("Sum: " + sum); // 预期输出: Sum: 55// 案例2: 计算数组元素的平均值OptionalDouble average = Arrays.stream(numbers).average();System.out.println("Average: " + average.getAsDouble()); // 预期输出: Average: 5.5// 案例3: 找出数组中的最大值OptionalInt max = Arrays.stream(numbers).max();System.out.println("Max: " + max.getAsInt()); // 预期输出: Max: 10// 案例4: 找出数组中的最小值OptionalInt min = Arrays.stream(numbers).min();System.out.println("Min: " + min.getAsInt()); // 预期输出: Min: 1// 案例5: 计算数组中偶数的个数long evenCount = Arrays.stream(numbers).filter(n -> n % 2 == 0).count();System.out.println("Even count: " + evenCount); // 预期输出: Even count: 5// 案例6: 将数组中的每个元素乘以2int[] multiplied = Arrays.stream(numbers).map(n -> n * 2).toArray();System.out.println("Multiplied: " + Arrays.toString(multiplied)); // 预期输出: Multiplied: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]// 案例7: 将数组中的偶数平方int[] squaredEvens = Arrays.stream(numbers).filter(n -> n % 2 == 0).map(n -> n * n).toArray();System.out.println("Squared evens: " + Arrays.toString(squaredEvens)); // 预期输出: Squared evens: [4, 16, 36, 64, 100]// 案例8: 检查数组中是否所有元素都大于0boolean allPositive = Arrays.stream(numbers).allMatch(n -> n > 0);System.out.println("All positive: " + allPositive); // 预期输出: All positive: true// 案例9: 检查数组中是否至少有一个元素大于5boolean anyGreaterThanFive = Arrays.stream(numbers).anyMatch(n -> n > 5);System.out.println("Any greater than 5: " + anyGreaterThanFive); // 预期输出: Any greater than 5: true// 案例10: 获取数组元素的统计信息IntSummaryStatistics stats = Arrays.stream(numbers).summaryStatistics();System.out.println("Statistics: " + stats); // 预期输出: Statistics: IntSummaryStatistics{count=10, sum=55, min=1, average=5.500000, max=10}}
}

九、Arrays练习

1. 给定一个整型数组,使用Arrays类的方法将其所有元素填充为指定的值。

import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr = new int[]{1, 4, 5, 7, 9, 3};Arrays.fill(arr, 1);System.out.println(Arrays.toString(arr));}
}

2. 给定两个整型数组,使用Arrays类的方法比较它们是否相等。

import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr1 = new int[]{1, 4, 5, 7, 9, 3};int[] arr2 = {1, 4, 5, 7, 9, 3};boolean equals = Arrays.equals(arr1, arr2);System.out.println(equals); //true}
}

3. 给定一个整型数组,使用Arrays类的方法将其复制到一个新的数组中。

import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr1 = new int[]{1, 4, 5, 7, 9, 3};int[] arr2 = Arrays.copyOf(arr1, arr1.length);System.out.println(Arrays.toString(arr2)); //[1, 4, 5, 7, 9, 3]}
}

4. 给定一个整型二维数组,使用Arrays类的方法对其进行排序,按照每行第一个元素升序排序。

import java.util.Arrays;
import java.util.Comparator;public class Main {public static void main(String[] args) {int[][] arr = {{3, 5}, {1, 2}, {4, 6}};Arrays.sort(arr, Comparator.comparingInt(a -> a[0]));for (int[] a : arr) {System.out.println(Arrays.toString(a));}//[1, 2]//[3, 5]//[4, 6]}
}

5. 给定一个已排序的整型数组,查找特定元素的位置。如果元素存在,则返回其索引;如果不存在,则返回一个负数。

import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr = {1, 3, 5, 6, 7, 8, 9};int i1 = Arrays.binarySearch(arr, 3);int i2 = Arrays.binarySearch(arr, 4);System.out.println(i1); // 1System.out.println(i2); // -3}
}

6. 给定一个整型数组,将数组的前三个元素填充为3。

import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr = {1, 3, 5, 6, 7, 8, 9};Arrays.fill(arr,0,3,3);System.out.println(Arrays.toString(arr)); //[3, 3, 3, 6, 7, 8, 9]}
}

7. 给定一个整型数组,使用Arrays.copyOf方法创建一个新的数组,新数组是原数组的一个副本,但是长度是原数组长度的两倍。

import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr1 = {1, 3, 5, 6, 7, 8, 9};int[] arr2 = Arrays.copyOf(arr1, arr1.length * 2);System.out.println(Arrays.toString(arr2)); //[1, 3, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0]}
}

8. 给定一个整型数组,将该数组的所有元素乘以2,赋值给一个新数组。

import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr1 = {1, 3, 5, 6, 7, 8, 9};int[] arr2 = Arrays.stream(arr1).map(i -> i * 2).toArray();System.out.println(Arrays.toString(arr2)); //[2, 6, 10, 12, 14, 16, 18]}
}

9. 合并两个int[]类型的数组,得到一个int[]类型的数组,再转换成List<Integer>类型

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class Main {public static void main(String[] args) {int[] arr1 = {1, 3, 5, 7, 9};int[] arr2 = {2, 4, 6, 8, 10, 12};int[] arr3 = Arrays.copyOf(arr1, arr1.length + arr2.length);System.out.println(Arrays.toString(arr3)); //[1, 3, 5, 7, 9, 0, 0, 0, 0, 0, 0]//从arr2的0号元素开始,复制到arr3,从arr3的arr1.length号元素开始,复制arr2.length个元素System.arraycopy(arr2, 0, arr3, arr1.length, arr2.length);System.out.println(Arrays.toString(arr3)); //[1, 3, 5, 7, 9, 2, 4, 6, 8, 10, 12]Arrays.sort(arr3);System.out.println(Arrays.toString(arr3)); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]List<Integer> list = Arrays.stream(arr3).boxed().collect(Collectors.toList());System.out.println(list);                  //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]}
}

10. 给定一个整型数组,去除数组中的重复元素,并返回一个没有重复元素的新数组,并求出最大值和最小值。

import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr1 = {1, 3, 3, 3, 3, 5, 5, 6, 8, 9};int[] arr2 = Arrays.stream(arr1).distinct().toArray();System.out.println(Arrays.toString(arr2)); //[1, 3, 5, 6, 8, 9]int max = Arrays.stream(arr2).max().getAsInt();int min = Arrays.stream(arr2).min().getAsInt();System.out.println(max); // 9System.out.println(min); // 1}
}

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

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

相关文章

图像细节增强:锐化处理的实践与分析

图像细节增强&#xff1a;锐化处理的实践与分析 图像处理是计算机视觉领域的核心技术之一&#xff0c;它涉及到图像的增强、恢复、变换等多个方面。其中&#xff0c;图像锐化处理是增强图像边缘和细节的一种重要技术。在本文中&#xff0c;我们将深入探讨图像锐化处理的基本原…

奥运火炬的三次传递 品牌精神的传承赓续丨陈忠伟董事长巴黎传递奥运圣火

7月14号&#xff0c;2024年巴黎奥运火炬在巴黎传递&#xff0c;中国企业家、恒源祥集团董事长兼总经理陈忠伟作为火炬手参与了传递&#xff0c;这也是他第三次参加奥运火炬的传递。 &#xff08;陈忠伟董事长点燃火炬&#xff09; 恒源祥从上世纪80年代起就开始赞助体育赛事&a…

持续集成04--Jenkins结合Gitee创建项目

前言 在持续集成/持续部署&#xff08;CI/CD&#xff09;的旅途中&#xff0c;Jenkins与版本控制系统的紧密集成是不可或缺的一环。本篇“持续集成03--Jenkins结合Gitee创建项目”将引导如何将Jenkins与Gitee&#xff08;一个流行的Git代码托管平台&#xff09;相结合&#xff…

C#实现自定义标签的设计和打印

背景:最近在进行资产盘点的时候,需要对固定资产设计标签并进行打印。 设计标签:选用的是Fastreport自带的,可拆包忌用的标签设计器;进行标签的模型设计。 软件解压后可直接进行使用。模板的设计基本都是无脑操作,拖拽控件按,放置到固定未知即可;我设计的模板如下: 说…

图示 JVM 可达性分析算法

可达性分析算法&#xff1a; 以 GC Roots 为起始点进行搜索&#xff0c;可达的对象都是存活的&#xff0c;不可达的对象可被回收。 Java 虚拟机使用该算法来判断对象是否可被回收&#xff0c;GC Roots 一般包含以下内容&#xff1a; 虚拟机栈中局部变量表中引用的对象本地方法栈…

什么是决策树?

1. 什么是决策树&#xff1f; 决策树&#xff08;Decision Tree&#xff09;是一种常用的机器学习算法&#xff0c;用于解决分类和回归问题。它通过构建树结构来表示决策过程&#xff0c;分支节点表示特征选择&#xff0c;叶节点表示类别或回归值。 2. 决策树的组成部分 决策…

MySQL字符串魔法:拼接、截取、替换与定位的艺术

在数据的世界里&#xff0c;MySQL作为一把强大的数据处理利剑&#xff0c;其字符串处理功能犹如魔术师手中的魔法棒&#xff0c;让数据变换自如。今天&#xff0c;我们就来一场关于MySQL字符串拼接、截取、替换以及查找位置的奇幻之旅&#xff0c;揭开这些操作的神秘面纱。 介绍…

【Java面向对象】面向对象思考

文章目录 1.类的抽象和封装2.面向对象的思想3.类的关系3.1 关联3.2 聚集和组合 4.包装类4.1 Integer和Double4.2 自动装箱和自动拆箱4.3 Biginteger 和 BigDecimal类4.4 String 类4.4.1 创建4.4.2 不可变字符串与驻留字符串4.4.3 替换和拆分字符串4.4.4 使用模式匹配、替换和拆…

ES6——Set集合和Map集合练习题

根据前一篇文章&#xff0c;让ai给我们出下面的练习题&#xff1a; Set 练习题 创建一个 Set 并添加数字 1 到 10&#xff0c;然后将其转换为数组并打印。编写一个函数&#xff0c;接收一个数组作为参数&#xff0c;返回一个新的数组&#xff0c;新数组只包含原数组中唯一的元…

美式键盘 QWERTY 布局的起源

注&#xff1a;机翻&#xff0c;未校对。 The QWERTY Keyboard Is Tech’s Biggest Unsolved Mystery QWERTY 键盘是科技界最大的未解之谜 It’s on your computer keyboard and your smartphone screen: QWERTY, the first six letters of the top row of the standard keybo…

基于计算机视觉的工地钢筋计数

手动钢筋计数是一项耗时的任务&#xff0c;而且容易出错和不一致。但是&#xff0c;你可以使用计算机视觉自动进行钢筋计数。你可以使用经过微调的计算机视觉模型来计算单个钢筋&#xff0c;这对于构建库存管理和质量验证系统非常有用 在这篇博文中&#xff0c;我们将学习如何…

生成树(STP)协议

一、生成树的技术背景 1、交换机单线路上链,存在单点故障,上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,网络将面临断网。 总结:以下网络不够健壮,不具备冗余性。 2、因此引入如下网络拓扑结构: 上述冗余拓扑能够解决单点故障问题,但同时冗拓扑也带来了…

【Godot4.2】MLTag类:HTML、XML通用标签类

概述 HTML和XML采用类似的标签形式。 之前在Godot中以函数库形式实现了网页标签和内容生成。能用&#xff0c;但是缺点也很明显。函数之间没有从属关系&#xff0c;但是多有依赖&#xff0c;而且没有划分出各种对象和类型。 如果以完全的面向对象形式来设计标签类或者元素类…

opencv学习:图像视频的读取截取部分图像数据颜色通道提取合并颜色通道边界填充数值计算图像融合

一、计算机眼中的图像 1.图像操作 构成像素点的数字在0~255之间 RGB叫做图像的颜色通道 h500&#xff0c;w500 2.灰度图像 3. 彩色图像 4.图像的读取 5.视频的读取 cv2.VideoCapture()--在OpenCV中&#xff0c;可以使用VideoCapture来读取视频文件&#xff0c;或是摄像头数…

Android11 设置一个默认密码 万能密码

在忘记密码的时候可以解锁和重置密码 密码分为 pin password pattern 思路&#xff1a;在设置密码的时候&#xff0c;保存密码到系统。在输入这个万能密码就取出保存的密码&#xff0c;替换到系统中去解锁。 万能密码只是一个判断作用&#xff0c;解锁的密码还是用户设置的密…

华为USG6000V防火墙安全策略用户认证

目录 一、实验拓扑图 二、要求 三、IP地址规划 四、实验配置 1&#x1f923;防火墙FW1web服务配置 2.网络配置 要求1&#xff1a;DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00-18:00)可以访问&#xff0c;生产区的设备全天可以访问 要求2&#xff1a;生产区不…

qiankun子应用vue加载js资源失效问题解决

在使用qiankun插件如果同一个基座对应不同的微应用时&#xff0c;此时子应用中需要引入某个外部js资源&#xff0c;单独访问子应用时没有问题&#xff0c;但是如果通过基座访问子应用时则在index.js 通过src引入的外部js文件就会不生效&#xff0c;此时可以在setup 中创建scrip…

集群架构-web服务器(接入负载均衡+数据库+会话保持redis)--15454核心配置详解

紧接着前面的集群架构深化—中小型公司&#xff08;拓展到大型公司业务&#xff09;–下面图简单回顾一下之前做的及故障核心知识总结&#xff08;等后期完全整理后&#xff0c;上传资源希望能帮大家&#xff09; web集群架构-接入负载均衡部署web02服务器等 web集群-搭建web0…

如何使用unittest框架来编写和运行单元测试

Python 的 unittest 框架是用于编写和运行可重复的测试的一个强大工具。它允许你定义测试用例、测试套件、测试运行器和测试固件&#xff08;fixtures&#xff09;&#xff0c;从而系统化地测试你的代码。以下是如何使用 unittest 框架来编写和运行单元测试的基本步骤&#xff…

拒绝废话:computed、watch和methods的区分和使用场景

computed、watch和methods是用于处理数据和响应数据变化的不同方式&#xff0c;三者之间有什么不同呢&#xff0c;贝格前端工场作为10年前端老司机&#xff0c;用浅显的语言给大家分享一下。 computed&#xff1a; computed属性是用来定义一个基于依赖的响应式属性。它会根据…