2、java语法之循环、数组与方法(找工作版)

写在前面:整个系列文章是自己学习慕课相关视频,进行的一个总结。文章只是为了记录学习课程的整个过程,方便以后查漏补缺,找到对应章节。

文章目录

    • 一、Java循环结构
      • 1、while循环
      • 2、do-while循环
      • 3、for循环
      • 4、嵌套循环
      • 5、break语句
      • 6、continue语句
      • 7、多种数据类型接收方法总结
    • 二、Java一维数组
      • 1、数组的概念
      • 2、一些数组的案例
      • 3、增强型for循环
      • 4、冒泡排序
    • 三、Java二维数组
    • 四、Java方法
      • 1、方法简介
      • 2、无参无返回值方法
      • 3、无参有返回值方法
      • 4、有参无返回值方法
      • 5、有参有返回值的方法
      • 6、方法重载
      • 7、数据类型的传值
      • 8、可变参数列表
    • 五、综合案例:数组移位与统计

一、Java循环结构

while循环、do-while循环、for循环

1、while循环

  • 循环输出26个英文字母,分两行输出
public class CharDemo {public static void main(String[] args) {// 循环输出26个英文字母,分两行输出char ch='a';int count=1;//控制换行while(ch<='z') {System.out.print(ch+" ");if(count%13==0) {System.out.println();}ch++;count++;}}
}
输出:
a b c d e f g h i j k l m 
n o p q r s t u v w x y z 

2、do-while循环

注意事项:
一、do-while循环至少执行一次
二、循环条件后的分号不能丢

  • 猜字游戏。要求猜一个个于1到10之间的数字。然后将猜测的值与实际值进行比较,并给出提示,以便能更接近实际值,直到猜中为止。
import java.util.Scanner;public class GuessDemo {public static void main(String[] args) {/*猜字游戏。要求猜一个个于1到10之间的数字。然后将猜测的值与实际值进行比较,并给出提示,以便能更接近实际值,直到猜中为止。*///Math.random()[0,1)之间的随机数int number=(int)(Math.random()*10+1);//设置要猜的数System.out.println("number="+number);int guess;System.out.println("猜一个介于1~10之间的数");do {System.out.println("请输入您猜测的数:");Scanner sc=new Scanner(System.in);guess = sc.nextInt();if(guess>number) {System.out.println("太大!");}else if(guess<number){System.out.println("太小!");}}while(number!=guess);System.out.println("您猜中了!答案为"+number);}}

3、for循环

在这里插入图片描述

  • 编写一个程序,求出200到300之间的数,且满足条件: 它们三个数字之积为42,三个数字之和为12.
public class FlowDemo1 {public static void main(String[] args) {/*编写一个程序,求出200到300之间的数,且满足条件: 它们三个数字之积为42,三个数字之和为12.*/int ge,shi,bai;for(int i=200;i<=300;i++) {bai=i/100;shi=i/10%10;ge=i%10;if(ge*shi*bai==42&&ge+shi+bai==12) {System.out.println(i);}}}
}
输出:
237
273

4、嵌套循环

  • 使用嵌套while循环输出10行10列的星号
public class StarDemo1 {public static void main(String[] args) {int m=1;//外重循环的循环变量int n=1;//内重循环的循环变量System.out.println("输出4行4列的星号:");//外重循环控制输出几行while(m<=4) {//内重循环控制每行输出几个星号n=1;while(n<=4) {System.out.print("*");n++;}System.out.println();m++;}}
}
输出:
输出44列的星号:
****
****
****
****

5、break语句

  • break语句可以结束当前循环的执行
  • 执行完break语句后,循环体中位于break语句后面的语句就不会被执行
  • 在多重循环中,break语句只向外跳一层
    在这里插入图片描述

6、continue语句

  • continue语句只能用在循环里
  • continue语句可以结束当前循环的执行,但是要继续下一次循环的执行
    在这里插入图片描述

7、多种数据类型接收方法总结

在这里插入图片描述
Java并没有提供直接接收字符数据的方法,而是先接收字符串数据,然后进行转换。如下代码所示:先从键盘接收字符串类型数据,存储到字符串类型的变量str中,然后通过字符串的charAt()方法获得输入的第一个字符。

//从键盘接收char类型数据
System.out.println("请输入数据:");
Scanner sc=new Scanner(System.in);
String str=sc.next();
char ch=str.charAt(0);
System.out.println(ch);
输出:
请输入数据:
abcd
a

二、Java一维数组

1、数组的概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 数组在内存中的存储:数组会被分配连续的内存空间,对于整型数组默认值都为0,假设数组名为a,它指向数组的第一个元素,数组本身其实是对象。
    在这里插入图片描述
    数组长度:arr.length

2、一些数组的案例

public class ArrayDemo {public static void main(String[] args) {// 声明一个整型数组int[] intArray;//声明一个字符串类型的数组String strArray[];//创建数组intArray = new int[5];strArray = new String[10];//声明数组的同时进行创建float[] floatArray=new float[4];//初始化数组char[] ch= {'a','b','c','d'};System.out.println("ch数组的长度为:"+ch.length);System.out.println("intArray数组的第2个元素为:"+intArray[1]);System.out.println("strArray数组的第5个元素为:"+strArray[4]);System.out.println("floatArray数组的第最后一个元素为:"+floatArray[floatArray.length-1]);//循环为整型数组赋值for(int i=0;i<5;i++) {intArray[i]=i+1;}//循环输出整型数组中的元素System.out.println("整型数组intArray的元素为:");for(int i=0;i<5;i++) {System.out.print(intArray[i]+"  ");}}
}
输出:
ch数组的长度为:4
intArray数组的第2个元素为:0
strArray数组的第5个元素为:null
floatArray数组的第最后一个元素为:0.0
整型数组intArray的元素为:
1  2  3  4  5  
  • 求数组元素的累加和
import java.util.Scanner;public class ArrayDemo1 {public static void main(String[] args) {// 求整型数组的累加和//定义整型数组int[] a=new int[5];Scanner sc=new Scanner(System.in);//从键盘接收数据,为数组赋值for(int i=0;i<a.length;i++) {System.out.println("请输入第"+(i+1)+"个元素:");a[i]=sc.nextInt();}System.out.println("数组元素内容为:");for(int i=0;i<a.length;i++) {System.out.print(a[i]+"  ");}//求数组元素的累加和int sum=0;for(int i=0;i<a.length;i++) {sum +=a[i];}System.out.println();System.out.println("数组元素的累加和为:"+sum);}
}
输出:
请输入第1个元素:
1
请输入第2个元素:
5
请输入第3个元素:
6
请输入第4个元素:
8
请输入第5个元素:
9
数组元素内容为:
1  5  6  8  9  
数组元素的累加和为:29

3、增强型for循环

在这里插入图片描述

  • 增强型for循环与普通for循环的区别增强型for循环与普通for循环的区别:
    1、增强型for循环书写简洁,遍历数组时不需要下标,主要用于数组或集合的遍历,数组或集合遍历完毕时循环会结束执行。
    2、普通for循环需要三个条件,包括循环变量、循环结束条件和循环变量的变化。在进行数组遍历时,如果需要使用下标,可以使用普通for循环。比如:从键盘接收数组元索时,提示输入第几个元素。如果使用增强型for循环需要额外定义变量,

4、冒泡排序

在这里插入图片描述在这里插入图片描述

public class SortDemo {public static void main(String[] args) {// 冒泡排序int[] a= {34,53,12,32,56,17};System.out.println("排序前的数组元素为:");for(int n:a) {System.out.print(n+"  ");}System.out.println();int temp;for(int i=0;i<a.length-1;i++) {//内循环控制每趟排序for(int j=0;j<a.length-i-1;j++) {if(a[j]>a[j+1]) {temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}System.out.println("从小到大排序后的数组元素为:");for(int n:a) {System.out.print(n+"  ");}}
}
输出:
排序前的数组元素为:
34  53  12  32  56  17  
从小到大排序后的数组元素为:
12  17  32  34  53  56  

三、Java二维数组

public class ArrayDemo5 {public static void main(String[] args) {// 二维数组的声明3种形式int[][] intArray;float floatArray[][];double[] doubleArray[];//创建一个3行3列int型二维数组intArray=new int[3][3];//为第2行第3个元素赋值intArray[1][2]=9;//声明数组的同时进行创建char[][] ch=new char[3][5];//float类型数组,只指定行数floatArray=new float[3][];//每行相当于一个一维数组,需要创建floatArray[0] =new float[3];floatArray[1] =new float[4];floatArray[2] =new float[5];// 二维数组的初始化int[][] num= {{1,2,3},{4,5,6},{7,8,9}};System.out.println("num数组的行数:"+num.length);System.out.println("num数组的列数:"+num[0].length);int[][] num1={{1,2,3,4},{6},{8,9}};//循环输出二维数组的内容for(int i=0;i<num1.length;i++) {for(int j=0;j<num1[i].length;j++) {System.out.print(num1[i][j]+"  ");}System.out.println();}}
}
输出:
num数组的行数:3
num数组的列数:3
1  2  3  4  
6  
8  9  

注意
1、数组是引用数据类型
2、创建数组时,会开辟连续的内存空间
3、数组长度使用length属性获取
4、数组元素的下标从0开始
5、数组下标越界问题

  • 在一个二维数组中存放了三名学生的语文和数学的成绩,从键盘输入三名学生的成绩存储到二维数组中,分别求语文和数学的总成绩及平均分并输出。
import java.util.Scanner;public class ArrayDemo4 {public static void main(String[] args) {// 定义一个三行两列的整型二维数组intArrayint[][] intArray=new int[3][2];//从键盘输入学生成绩Scanner sc=new Scanner(System.in);for(int i=0;i<intArray.length;i++) {for(int j=0;j<intArray[i].length;j++) {if(j==0) {System.out.println("请输入第"+(i+1)+"个学生的语文成绩:");intArray[i][j]=sc.nextInt();}else {System.out.println("请输入第"+(i+1)+"个学生的数学成绩:");intArray[i][j]=sc.nextInt();}}}//求语文的总成绩和平均分int sum1=0;float avg1;for(int i=0;i<intArray.length;i++) {sum1 += intArray[i][0];}avg1=sum1/intArray.length;//求数学的总成绩和平均分int sum2=0;float avg2;for(int i=0;i<intArray.length;i++) {sum2 += intArray[i][1];}avg2=sum2/intArray.length;System.out.println("语文的总成绩为:"+sum1);System.out.println("语文的平均分为:"+avg1);System.out.println("数学的总成绩为:"+sum2);System.out.println("数学的平均分为:"+avg2);}}
输出:
请输入第1个学生的语文成绩:
78
请输入第1个学生的数学成绩:
98
请输入第2个学生的语文成绩:
95
请输入第2个学生的数学成绩:
100
请输入第3个学生的语文成绩:
75
请输入第3个学生的数学成绩:
80
语文的总成绩为:248
语文的平均分为:82.0
数学的总成绩为:278
数学的平均分为:92.0

四、Java方法

1、方法简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、无参无返回值方法

注意:方法在类的内部定义

public class MethodDemo {//打印输出星号的方法public void printStar() {System.out.println("*******************************");}public static void main(String[] args) {// 创建一个类对象MethodDemo myMethodDemo=new MethodDemo();//使用对象名.方法名()去调用方法myMethodDemo.printStar();System.out.println("欢迎来到Java的世界!");myMethodDemo.printStar();}
}
输出:
*******************************
欢迎来到Java的世界!
*******************************

3、无参有返回值方法

public class Rectangle {//求长方形面积的方法public int area(){int length=10;int width=5;int getArea=length*width;return getArea;//返回语句}public static void main(String[] args) {Rectangle rc=new Rectangle();System.out.print("长方形的面积为:"+rc.area());}
}
输出:
长方形的面积为:50

4、有参无返回值方法

public class MaxDemo {// 求最大值的方法public void max(float a,float b) {float max;if(a>b) {max=a;}else {max=b;}System.out.println("两个数"+a+"和"+b+"的最大值为:"+max);}public static void main(String[] args) {MaxDemo mDemo = new MaxDemo();int a=5,b=3;mDemo.max(a,b);float m=5.6f,n=8.9f;mDemo.max(m, n);mDemo.max(9.8f, 12.8f);}}
输出:
两个数5.03.0的最大值为:5.0
两个数5.68.9的最大值为:8.9
两个数9.812.8的最大值为:12.8

5、有参有返回值的方法

  • 定义一个求n!的方法,然后再求1!+2!+3!+4!+5!
    public int fac(int n)
public class FacDemo {// 方法不能嵌套定义//求阶乘的方法public int fac(int n) {int s=1;for(int i=1;i<=n;i++) {s*=i;}return s;}public static void main(String[] args) {FacDemo facDemo=new FacDemo();int fac=facDemo.fac(3);System.out.println("3!="+fac);int sum=0;for(int i=1;i<=5;i++) {fac=facDemo.fac(i);sum+=fac;}System.out.println("1!+2!+3!+4!+5!="+sum);}
}
输出:
3!=6
1!+2!+3!+4!+5!=153
  • 例:查找数组元素的值
    public boolean search(int n,int[] arr){}
import java.util.Scanner;public class ArraySearch {//查找数组元素值的方法public boolean search(int n,int[] arr) {boolean flag=false;//默认是没找到for(int i=0;i<arr.length;i++) {if(arr[i]==n) {flag=true;//找到了break;}}return flag;}public static void main(String[] args) {int[] arr1= {10,20,30,40,50,60};Scanner sc=new Scanner(System.in);System.out.println("请输入要查找的数据:");int n1=sc.nextInt();ArraySearch as = new ArraySearch();boolean flag=as.search(n1, arr1);if(flag) {System.out.println("找到了");}else {System.out.println("没找到");}}
}
输出:
请输入要查找的数据:
35
没找到

6、方法重载

方法名相同,参数列表不同
在这里插入图片描述

public class MathDemo {//求两个int类型数的和public int plus(int m,int n) {return m+n;}//求两个double类型数的和public double plus(double m,double n) {return m+n;}//求数组元素的累加和public int plus(int[] arr) {int sum=0;for(int i=0;i<arr.length;i++) {sum=sum+arr[i];}return sum;}public static void main(String[] args) {int m=5,n=10;int[] arr= {1,2,3,4,5,6};MathDemo mathDemo=new MathDemo();System.out.println("int类型的和:"+mathDemo.plus(m, n));System.out.println("double类型的和:"+mathDemo.plus(5.6,7.8));System.out.println("数组元素的和:"+mathDemo.plus(arr));}
}
输出:
int类型的和:15
double类型的和:13.399999999999999
数组元素的和:21

Java方法重载的总结:
方法名相同,参数列表不同。
参数列表不同包括,参数的个数和类型不同。如果只有参数名不同,不能算作方法重载。如下三个方法是重载方法,它们的参数列表都是不同的。
public void display(){}
public void display(int n){}
public void display(float n){}
如下两个方法不是重载方法,两个方法只是参数名不同,不满足方法重载条件。
public void display(int n){}
public void display(int d){}

7、数据类型的传值

基本数据类型传值时,不会影响主方法中的值;引用数据类型传值时,会影响主方法中的值。

  • 方法传值,只传值,不传地址。因此调用方法后m和n的值不变。
public class ExchangeDemo {//交换方法public void swap(int a,int b) {int temp;System.out.println("交换前:a="+a+",b="+b);temp=a;a=b;b=temp;System.out.println("交换后:a="+a+",b="+b);}public void swapTest() {int m=4,n=5;System.out.println("交换前:m="+m+",n="+n);swap(m, n);System.out.println("交换后:m="+m+",n="+n);}public static void main(String[] args) {ExchangeDemo ed = new ExchangeDemo();ed.swapTest();}
}
输出:
交换前:m=4,n=5
交换前:a=4,b=5
交换后:a=5,b=4
交换后:m=4,n=5
  • 数组传值时,主方法外和主方法内指向的是同一片内存空间。
public class ArrayDemo {//定义一个用于修改某个数组元素值的方法public void updateArray(int[] a) {a[3]=15;System.out.println("数组a的元素为:");for(int n:a) {System.out.print(n+"  ");}System.out.println();}public static void main(String[] args) {ArrayDemo ad=new ArrayDemo();int[] a1= {1,2,3,4,5};System.out.println("方法调用前数组a1的元素为:");for(int n:a1) {System.out.print(n+"  ");}System.out.println();ad.updateArray(a1);System.out.println("方法调用后数组a1的元素为:");for(int n:a1) {System.out.print(n+"  ");}System.out.println();}
}
输出:
方法调用前数组a1的元素为:
1  2  3  4  5  
数组a的元素为:
1  2  3  15  5  
方法调用后数组a1的元素为:
1  2  3  15  5  

8、可变参数列表

public void sum(int… n){}

public class ArgsDemo {//求和public void sum(int... n) {int sum=0;for(int i:n) {sum+=i;}System.out.println("sum="+sum);}public static void main(String[] args) {ArgsDemo ad=new ArgsDemo();ad.sum(1);ad.sum(1,2);ad.sum(1,2,3);}
}
输出:
sum=1
sum=3
sum=6
  • 参数列表中如果有两个以上参数,可变参数一定是在最后的。
import javax.print.attribute.IntegerSyntax;public class ArgsDemo1 {//查找public void search(int n,int... a) {boolean flag=false;for(int a1:a) {if(a1==n) {flag=true;break;}}if(flag) {System.out.println("找到了!"+n);}else {System.out.println("没找到!"+n);}}public static void main(String[] args) {ArgsDemo1 ad1=new ArgsDemo1();ad1.search(3,1,2,3,4,5);//可以将数组传递给可变参数列表 int[] a= {1,2,3,4,5};ad1.search(3, a);/*注意:如果数组作为参数时,是不能将多个值传递给数组的public void search(int n,int[] a) {}ad1.search(3,1,2,3,4,5);会报错*/}
}
输出:
找到了!3
找到了!3
  • 可变参数列表所在的方法是最后被访问的。
/*** 文档注释:* 关于可变参数列表和重载的问题* @author 86156 */
public class ArgsDemo2 {//可变参数列表所在的方法是最后被访问的。public int plus(int a,int b) {System.out.println("不带可变参数的方法被调用!");return a+b;}public int plus(int... a) {int sum=0;for(int n:a) {sum+=n;}System.out.println("带可变参数的方法被调用!");return sum;}public static void main(String[] args) {ArgsDemo2 ad2=new ArgsDemo2();System.out.println("和为:"+ad2.plus(1,2));}
}
输出:
不带可变参数的方法被调用!
和为:3

可变参数列表总结:
1、可变参数列表作为方法参数时,如果有多个参数,可变参数列表只能放到最后一个位置。
2、不能有多个可变参数列表作为方法参数。而数组没有这个限制。
3、数组可以传递给可变参数的方法,反之不行。
4、在重载中,含有可变参数的方法是最后被选中的。
关于可变参数作为方法参数,下面的方法定义形式都是错误的:
public void method(int… m,int… n){} //不能有多个可变参数作为方法参数
public void method(int… m,int n){} //可变参数应该放到参数列表的最后
5、可变参数的底层实现就是数组。
6、当传入方法的参数数量不确定的时候,可以考虑使用可变参数列表。

五、综合案例:数组移位与统计

- 需求:定义一个类,对数组中的数据进行管理。

package com.imooc.datamanage;import java.util.InputMismatchException;
import java.util.Scanner;/*** 从键盘接收整型数据存放到数组中,并对数组中的数据进行管理* @author 86156*/
public class DataManage {// 插入数据public int[] insertData() {int[] a=new int[10];Scanner sc=new Scanner(System.in);//少接收一个数据,为在指定位置处插入数据做准备for(int i=0;i<a.length-1;i++) {System.out.println("请输入第"+(i+1)+"个数据:");try {a[i]=sc.nextInt();}catch (InputMismatchException e) {System.out.println("输入数据的格式有误,不能有非数字!");sc.next();i--;//重新输入刚才的数据}}return a;}/*** 显示数组中元素的内容* @param a 数组* @param length  要显示的数组元素个数*/public void showData(int[] a,int length) {for(int i=0;i<length;i++) {System.out.print(a[i]+"   ");}System.out.println();}/*** 从键盘接收一个数据,插入到数组的指定位置处* @param a 要插入数据的数组* @param n 要插入的数据* @param k 要插入的位置,从0开始* 在数组中插入数据,相当于对数组的元素进行赋值,会对当前数据进行覆盖*/public void insertAtArray(int[] a,int n,int k) {//注意从最后一个数据开始移动,避免数据覆盖for(int i=a.length-1;i>k;i--) {a[i]=a[i-1];}a[k]=n;}/*** 输出数组中能被3整除的元素* @param a*/public void divThree(int[] a) {String str="";int count=0;for(int n:a) {if(n%3==0) {str=str+n+" ";count++;}}if(count==0) {System.out.println("数组中没有能被3整除的元素!");}else {System.out.println("数组中能被3整除的元素为:"+str);}}/*** 提示信息*/public void notice() {System.out.println("************************************");System.out.println("                   1--插入数据");System.out.println("                   2--显示所有数据");System.out.println("                   3--在指定位置处插入数据");System.out.println("                   4--查询能被3整除的数据");System.out.println("                   0--退出");System.out.println("************************************");}public static void main(String[] args) {DataManage dm=new DataManage();Scanner sc=new Scanner(System.in);//在主方法中定义的变量都是局部变量,需要赋初值int input=0;int[] a = null;int n=0,k=0;//n表示要插入的数据,k表示要插入的位置while(true) {dm.notice();System.out.println("请输入对应的数字进行操作:");try {input = sc.nextInt();} catch (InputMismatchException e) {System.out.println("输入的数据格式有误,不能有非数字!");sc.next();continue;}if(input==0) {System.out.println("退出程序!");break;}switch(input) {case 1://插入数据a=dm.insertData();//显示数据System.out.println("数组元素为:");dm.showData(a, a.length-1);break;case 2:if(a!=null) {System.out.println("数组元素为:");if(a[a.length-1]==0) {//如果数组的最后一个元素为0,说明还没有插入数据,因此不显示最后一个元素dm.showData(a, a.length-1);}else {dm.showData(a, a.length);}}else {System.out.println("还未在数组中插入数据,请重新选择操作!");}break;case 3://在指定位置插入数据if(a!=null) {System.out.println("请输入要插入的数据:");try {n=sc.nextInt();System.out.println("请输入要插入的位置:");k=sc.nextInt();} catch (InputMismatchException e) {System.out.println("输入的数据格式有误,不能有非数字!");sc.next();break;}dm.insertAtArray(a, n, k);dm.showData(a, a.length);}else {System.out.println("还未在数组中插入数据,请重新选择操作!");}break;case 4:if(a!=null) {dm.divThree(a);}else {System.out.println("还未在数组中插入数据,请重新选择操作!");}	break;}}}
}
输出:
************************************1--插入数据2--显示所有数据3--在指定位置处插入数据4--查询能被3整除的数据0--退出
************************************
请输入对应的数字进行操作:
1
请输入第1个数据:
1
请输入第2个数据:
2
请输入第3个数据:
3
请输入第4个数据:
4
请输入第5个数据:
5
请输入第6个数据:
6
请输入第7个数据:
7
请输入第8个数据:
8
请输入第9个数据:
9
数组元素为:
1   2   3   4   5   6   7   8   9   
************************************1--插入数据2--显示所有数据3--在指定位置处插入数据4--查询能被3整除的数据0--退出
************************************
请输入对应的数字进行操作:
2
数组元素为:
1   2   3   4   5   6   7   8   9   
************************************1--插入数据2--显示所有数据3--在指定位置处插入数据4--查询能被3整除的数据0--退出
************************************
请输入对应的数字进行操作:
3
请输入要插入的数据:
12
请输入要插入的位置:
6
1   2   3   4   5   6   12   7   8   9   
************************************1--插入数据2--显示所有数据3--在指定位置处插入数据4--查询能被3整除的数据0--退出
************************************
请输入对应的数字进行操作:
4
数组中能被3整除的元素为:3 6 12 9 
************************************1--插入数据2--显示所有数据3--在指定位置处插入数据4--查询能被3整除的数据0--退出
************************************
请输入对应的数字进行操作:
0
退出程序!

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

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

相关文章

【面试题】如何在级别用户中检查用户名是否存在?

前言 不知道大家有没有留意过&#xff0c;在使用一些app或者网站注册的时候&#xff0c;提示你用户名已经被占用了&#xff0c;比如我们熟知的《英雄联盟》有些人不知道取啥名字&#xff0c;干脆就叫“不知道取啥名”。 但是有这样困惑的可不止他一个&#xff0c;于是就出现了…

PaddleVideo:PP-TSM 视频分类

本文记录&#xff1a;使用Paddle框架训练TSM&#xff08;Temporal Shift Module&#xff09; 前提条件&#xff1a;已经安装Paddle和PadleVideo&#xff0c;具体可参考前一篇文章。 1-数据准备&#xff1a; 以UCF101为例&#xff1a;内含13320 个短视频&#xff0c;视频类别&…

2024年32款数据分析工具分五大类总览

数据分析工具在现代商业和科学中扮演着不可或缺的角色&#xff0c;为组织和个人提供了深入洞察和明智决策的能力。这些工具不仅能够处理大规模的数据集&#xff0c;还能通过强大的分析和可视化功能揭示隐藏在数据背后的模式和趋势。数据分析工具软件主要可以划分为以下五个类别…

YOLOv5标签值含义根据标签将检测框色块替换(马赛克)

以一个检测人脸的图片为例&#xff1a; 检测后生成的标签txt如下&#xff0c; 此时&#xff0c;如何根据标签值将检测到的人脸同色块替换呢&#xff1f; 关键是获取检测框的左上角坐标和右下角坐标。 img Image.open(D:/PythonWokspace/JINX/datasets_transform/dataset/im…

【鸿蒙开发】系统组件Text,Span

Text组件 Text显示一段文本 接口&#xff1a; Text(content?: string | Resource) 参数&#xff1a; 参数名 参数类型 必填 参数描述 content string | Resource 否 文本内容。包含子组件Span时不生效&#xff0c;显示Span内容&#xff0c;并且此时text组件的样式不…

图片管理系统:原理、设计与实践

title: 图片管理系统&#xff1a;原理、设计与实践 date: 2024/4/9 20:04:25 updated: 2024/4/9 20:04:25 tags: 图片管理存储组织上传采集处理编辑搜索检索展示分享AI应用 第一章&#xff1a;图片管理系统概述 1.1 图片管理系统简介 图片管理系统是一种用于存储、组织、处理…

跨地域分布的企业,SD-WAN帮助企业实现统一管理

全球化进程的加速&#xff0c;越来越多的企业在全球范围内展开业务&#xff0c;跨地域分布的企业网络管理面临着诸多挑战。SD-WAN作为一种新兴的网络技术&#xff0c;为跨地域分布的企业提供了一种有效的解决方案&#xff0c;帮助企业实现统一管理和集中控制。本文将探讨SD-WAN…

【负载均衡——一致性哈希算法】

1.一致性哈希是什么 一致性哈希算法就很好地解决了分布式系统在扩容或者缩容时&#xff0c;发生过多的数据迁移的问题。 一致哈希算法也用了取模运算&#xff0c;但与哈希算法不同的是&#xff0c;哈希算法是对节点的数量进行取模运算&#xff0c;而一致哈希算法是对 2^32 进…

摩尔信使MThings之数据网关:Modbus转MQTT

由于现场设备和物联网云平台采用了不同的通信协议&#xff0c;而为了实现它们之间的互操作性和数据交换&#xff0c;需要进行协议转换。 MQTT作为一种轻量级的、基于发布/订阅模式的通信协议&#xff0c;适用于连接分布式设备和传感器网络&#xff0c;而MODBUS协议则常用于工业…

Java之枚举详细总结

枚举是一种特殊类。 枚举类的格式&#xff1a; 修饰符 enum 枚举类名{名称1&#xff0c;名称2&#xff0c;...&#xff1b;其他成员 } 例如&#xff1a; public enum A {//枚举类中的第一行必须枚举对象的名字X,Y,Z; ​private String name; ​public String getName() {retu…

Linux初学(十七)防火墙

一、防火墙简介 1.1 防火墙的类别 安全产品 杀毒&#xff1a; 针对病毒&#xff0c;特征篡改系统中的文件杀毒软件针对处理病毒程序防火墙&#xff1a; 针对木马&#xff0c;特征系统窃取防火墙针对处理木马 防火墙分为两种 硬件防火墙软件防火墙 硬件防火墙 各个网络安全…

el-table实现表格内部横向拖拽效果

2024.4.2今天我学习了如何对el-table表格组件实现内部横向拖拽的效果&#xff0c;效果&#xff1a; 代码如下&#xff1a; 一、创建utils/底下文件 const crosswise_drag_table function (Vue){// 全局添加table左右拖动效果的指令Vue.directive(tableMove, {bind: function…

Unity类银河恶魔城学习记录12-8 p130 Skill Tree UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI.cs using UnityEngine;public class UI : MonoBehaviour {[SerializeFi…

抖音电商小店短视频直播年度运营规划方案

【干货资料持续更新&#xff0c;以防走丢】 抖音电商小店短视频直播年度运营规划方案 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 PPT可编辑&#xff08;完整资料包含以下内容&#xff09; 目录 年度运维方案的详细整理和规划。 一、行业分析洞察 - 市场增…

【linux基础】bash脚本的学习:定义变量及引用变量、统计目标目录下所有文件行数、列数

假设目的&#xff1a;统计并输出指定文件夹下所有文件行数 单个文件可以用 wc -l &#xff1b;多个文件&#xff0c;可以用通配符 / 借助bash脚本 1.定义变量名&#xff0c;使用引号 a"bestqc.com.map" b"Anno.variant_function" c"enrichment/GOe…

访问网站时你的电脑都做了什么

电脑在访问百度时 首先在本地hosts文件里面查看本地有无域名对应的IP地址&#xff0c;若有就直接返回。若无&#xff0c;则本地DNS服务器当DNS的客户&#xff0c;向其它根域服务器发送报文查询IP地址&#xff0c;简单来说就是帮助主机查找IP&#xff0c;所以递归查询就在客户端…

【Ubuntu】远程连接乌班图的方式-命令行界面、图形界面

环境&#xff1a;ubuntu-22.04.2-amd64.iso连接工具&#xff1a;MobaXterm、windows自带远程桌面mstsc.exe重置root密码&#xff1a;Ubuntu默认root密码是随机的&#xff0c;需要使用命令sudo passwd 进行重置。 一、命令行界面-SSH连接 1.1 SSH远程环境搭建 # 安装ssh服务&a…

无需训练,这个新方法实现了生成图像尺寸、分辨率自由

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 近日&#xff0c;来自香港中文大学 - 商汤科技联合实验室等机构的研究者们提出了FouriScale&…

【Unity添加远程桌面】使用Unity账号远程控制N台电脑

设置地址&#xff1a; URDP终极远程桌面&#xff1b;功能强大&#xff0c;足以让开发人员、设计师、建筑师、工程师等等随时随地完成工作或协助别人https://cloud-desktop.u3dcloud.cn/在网站登录自己的Unity 账号上去 下载安装被控端安装 保持登录 3.代码添加当前主机 "…

P5356 [Ynoi2017] 由乃打扑克

我手把手教她打扑克 qwq 综合分析一下2个操作&#xff0c;查找区间第k小的值&#xff0c;感觉可以用主席树&#xff0c;区间修改那没事了 考虑分块做法,块长B 分析第一个操作 只需要维护数列的单调性&#xff0c;然后二分答案上二分就ok了 分析第二个操作 维护一个加法懒…