Java(运算符+循环)万字超详细介绍 (囊括了按位,异或,for,while等基础和疑难知识)

news2024/11/25 12:46:15

【本节目标1】熟练掌握运算符

【本章目标2】熟练掌握循环

万字讲解,十分详细,有大量(简单)代码帮助理解和大量的(简单)举例与总结。

1.运算符

1.什么是运算符

计算机最基本的用途之一就是执行数学运算,比如:

int a = 10;

int b = 20;


a+b;

a<b;

上述+和<等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。
作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+*/)、关系运算符(< >==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。

2.算术运算符

1.基本四则运算符:加减乘除模(+ - * / %)

int a = 20;

int b = 10;


 

System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);

注意:

1.都是二元运算符,使用时必须要有左右两个操作数

2.int/int 结果还是int,而且会向下取整

Int a = 3;

int b = 2;

System.out.println(a/b);  //在数学中应该是1.5,但是在java中是1,会向下取整,取小数点之后的整数


double d = a*1.0/b;  //这样可以得到数学中的答案

System.out.println(b);

3.做除法和取模时,右操作数不能为0

int a = 1;

int b = 0;

System.out.println(a/b);  //报错

4.%不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模

System.out.println(11.5%2.0);

1.5

5.两侧操作类型不一致时,向类型大的提升

System.out.println(1+0.2);  // +的左侧是int,右侧double,在加之前hi被提升为double

输出1.2

6.增量运算符

该种运算符操作完成后,会将操纵的结果赋值给左操作数。

int a = 1;

a+=2;  //相当于a=a+2

System.out.println(a);  //输出3


a-=1;  //相当于a=a-1;

System.out.println(a);    //输出2


a*=3;    //相当于a*=3

System.out.println(a);    //输出6


a/=3;   //相当于a=a/3;

System.out.println(a);    //输出2


a%3=3;   //相当于a=a%2

System.out.println(a);   //输出2 

注意:只有变量才可以使用该运算符,常量不可以,因为常量不可以改变

7.自增/自减运算符++ --

++是给变量的值+1,--是给变量的值-1.

int a =1;

a++;  //后置++,表示给a的值+1,此时a的值为2(因为直接;结束,所以在这里前置和后置没区别)

System.out.println(a++);   //注意:后置++是先使用再加 ,因此在这里打印2

System.out.println(a);    // 在这里打印3


++a;   //前置++,表示给a的值+1

System.out.println(++a);  // 注意:前置++是先给变量+1,再进行使用,因此这里打印5

System.out.println(a);     //输出5

//--操作符给操作-1,与++含义类似

注意:
1.如果单独使用,[前置++]和[后置++]没有任何区别
2.如果混合使用[前置++]先+1,然后使用变量+1之后的值,[后置++] 先使用变量原来的值,表达式,结束时给变量+1
3.只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改

3.关系运算符

关系运算符主要与六个  :== ,!=,<,>,<=,>=,其计算结果是true或者false

int a = 10;

int b = 20;

//注意:在java中=表示赋值,要与数学中的含义区分

//在java中==表示相等

System.out.println(a==b);       //false

System.out.println(a != b);       //true

System.out.println(a<b);          //true

System.out.println(a>b);          //false

System.out.println(a<=b);          //true

System.out.println(a>=b);          //false

注意:当需要多次判断时,不能连着写,比如:3<a<5,Java程序与数学不一样

4.逻辑运算符号(重点)

逻辑运算符号主要有3个:&&  ||  !运算结果都是boolean类型

1.逻辑与&&

语法规则: 表达式1&&表达式2,左右表达式必须是boolean类型的结果相当于现实生活中的且,比如: 如果是学生,并且 带有学生证 才可以享受半票两个表达式都为真,结果才是真,只要有一个是假,结果就是假。

Inr a =1;

int b =2;


System.out.println(a==1 && b==2);     //左为真 且 右为真 则结果为真

System.out.println(a==1 && b>100);   //左为真 但 右为假 则结果为假

System.out.println(a>100 && b==2);   //左为假 右边直接不看 结果为假

System.out.println(a>100 && b>100);  // 左为假 右边直接不看 结果为假

注意:一个为假,则为假

2.逻辑或||

语法规则: 表达式1  ||  表达式2,左右表达式必须是boolean类型的结果相当于现实生活中的或,比如:买房子交钱时,全款 或者按揭都可以,如果全款或者按揭,房子都是你的否则站一边去。

int a = 1;

int b = 2;

System.out.println(a==1 || b==2);     //左为真 且 右为真 则结果为真

System.out.println(a==1 || b>100);   //左为真 但 右为假 则结果为真

System.out.println(a>100 || b==2);   //左为假 看右边,为真 结果为真

System.out.println(a>100 || b>100);  // 左为假 右为假 结果为假

注意:左右表达式中至少与一个位置,则结果为真

3 逻辑非!

语法规则:!表达式

真变假,假变真

int a =1;

System.out.println(!(a==1));   //a==1为true,取个非就是false

System.out.println(a != 1);     //a !=1为false,取非就是true

4. 短路求值

&& 和 || 遵守短路求值规则

System.out.println(10>20 && 10/0==0);    //打印false

System.out.println(10<20 || 10/0==0);        //打印true

我们都知道,计算10/0计算机会报异常,但是上面的代码却能正常运行,说明10/0并没有被求值

1.对于 &&,如果左侧表达式值为 false,则表达式结果一定是 false,无需计算右侧表达式

2.对于||,如果左侧表达式值为 true,则表达式结果一定是true,无需计算右侧表达式

3.&和|如果表达式结果为 boolean 时,也表示逻辑运算但与&&相比它们不支持短路求值.

System.out.println(10>20 && 10/0==0);    //异常

System.out.println(10<20 || 10/0==0);        //异常

5.位运算符

java 中数据存储的最小单位是字节,而数据操作的最小单位是比特位,字节是最小的存储单位,每个字节是由8个进制比特位组成的,多个字节组合在一起可以表示各种不同的数据位运算符主要有四个:&,|,~,^ 是一元算符外,其余都是二元运算符
位操作表示 按二进制位运算计算机中都是使用二进制来表示数据的(01构成的序列),按位运算就是在按照二进制位的每一位依次进行计算.

1.按位与&:如果两个二进制位都是1,则结果为1,否则为0

2.按位或 | :如果两个二进制位都是0,则结果为0,否则为1

注意:当&和|的操作数为整数的int,short,long,byte的时候,表示按位运算,当操作数为boolean的时候,表示逻辑运算。

3.按位取反~:如果该位为0则转为1,如果该位为1,则转为0

注意:
1.0x前缀的数字为十六进制数字十六进制可以看成是二进制的简化表示方式一个十六进制数字对应4个二进制位.
2.0xf 表示10 进制的 15也就是二进制的 1111
3. printf 能够格式化输出内容x 表示按照十六进制输出

4.\n表示换行符

5.如果两个数相同,则异或为0

6.移位运算

移位运算符有三个:<<, >> ,>>>,都是二元运算符号,且都是按照二进制比特位来运算的。

1.左移<<:最左侧位不要了,最右侧补0.

Int a = 0x10;

System.out.printf("%x\n",a<<1);   //运算结果是按照十六进制打印的    20

注意:像左移位时,丢弃的是符号位,因此正数左移可能会编程负数。

2.右移>>:最右侧位不要了,最左侧位符号位(正数补0,负数补1)

int a =0x10;

System.out.printfln("%x\n",a>>1);  //运行结果是按照十六进制打印的   8


int b = 0xffff0000;

System.out.printfln("%x\n",b>>1);  // 执行结果按照十六进制打印   ffff8000

3.无符号右移>>>:最右侧位不要了,最左侧补0

Int a = 0xffffffff;

System.out.printf("%x\n:,a>>>1);   //运行结果是按照十六进制打印   7fffffff

注意
1.左移1位相当于原数字*2左N位相当于原数字*2的N次方
2.右移1位相当于原数字/2右N位相当于原数字/2的N次方

3.由于计算机计算移位效率高于计算乘除,当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.

4.移动负数位或者移位位数过大都没有意义

7.条件运算符

条件运算符只有一个
表达式1?表达式2:表达式3
当表达式1的值为true时,整个表达式的值为表达式2的值当表达式1的值为false时,整个表达式的值为表达式3的值也是Java 中唯一的一个三目运算符,是条件判断语句的简化写法

//求两个整数的最大值

int a  = 10;

int b  = 20;

int max = a>b? a : b;

注意:

1.表达式2和表达式3的结果要是不同类型的时候,除非能发生类型隐式转换

int a = 10;

int b = 20;

int c = a>b?1:2.0;

2.表达式不能单独存在,其参生结果必须要被使用。

int a = 10;

int b = 20;

a>b?a:b;   //报错:不是语句

8.运算符的优先级

在一条表达式中,各个运算符可以混合起来运算,但是运算符的优先级不同,比如:*和/的优先级

要高于+和-,有些情况下稍不注意,可能会造成很大的麻烦。

//求a和b的平均值

int a = 10;

int b = 20;

int c = a+(b-a)>>1;

System.out.printfln(c);

上述表达式中,由于+的优先级高于>>,因此a先和b-a的结果做加法,整体为20,最后再进行右移,因此结果为10.

注意:运算符的优先级我们不必记忆,可能存在歧义的代码中加上括号即可。

2. 循环

1.概述

我的曾经:
早上8:00起床--->洗漱--->吃早饭--->上课--吃午饭--->上课--->运动--->吃完饭--->玩手机--->睡觉每天的生活貌似都是这么规律,顺序的做着每件事,前途一片渺茫~~~直到有一天
我幡然醒悟,不好好学习可能要卖红薯,奋发图强可能离梦想会更近,于是我选择来到手撕代码看博客,从此:早上6:00起床--->看书敲代码--.>上课+看编程书籍--->吃午饭--->刷题-->上课+看书--->吃晚饭--->总结-->看科技新闻--->睡觉
就这样日复一日的努力着,感觉每天都很充实,生活看到了希望~~~再后来
秋招来了,我用自己所学,一次次刷新着手中ofer的记录,那一刻,我被自己感动了

2.顺序结构

顺序结构比较简单,按照代码写的顺序一行一行的执行。

System.out.println("aaa");

System.out.println("bbb");

System.out.println("ccc");

//执行结果

aaa

bbb

ccc

如果调整代码的书写顺序,则执行顺序也发生变化

System.out.println("bbb");

System.out.println("aaa");

System.out.println("ccc");

//执行顺序

bbb

aaa

ccc

3.分支结构

3.1 if语句

1.语法格式

if(布尔表达式){

//语句

}

如果布尔表达式结果为true,执行if中的语句,否则不执行

比如:小明,如果这次考试有考到90分以上,奖励一个15promax

int score =92;

if(score>90){

System.out.println("15promax");

}

2.语法格式

if(布尔表达式){

//语句1;

}else{

//语句2;

}

如果布尔表达式结果为true,则执行if中语句,如果不是则执行else中的雨具

比如:小明,如果这次考到90分以上,奖励15promax,如果没考到,给我一个15promax

int score = 0 ;

if(score>90){

System.out.println("15promax")

}

else{

System.out.println("给我一个promax");

}

3.语法格式+习题

if(布尔表达式){

//语句1、

}

else if{

//语句2

}

else{

//语句3

}

表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3比如:考虑到学生自尊,不公开分数排名,因此:
分数在[90,100]之间的,为优秀
分数在[80,90)之前的,为良好
分数在[7080)之间的,为中等
分数在[60,70)之间的,为及格
分数在[0,60)之间的,为不及格
错误数据

按照上述办法通知学生成绩:

if(score>=90){
    System.out.println("优秀");
}
else if (score>=80 && score <= 90){
    System.out.println("良好");
}
else if (score>=70 && score <= 80){
    System.out.println("中等");
}
else if (score>=60 && score <= 70){
    System.out.println("及格");
}
else if (score<60){
    System.out.println("不及格");
}
else{
    System.out.println("错误输入");
}

【小练习】

判断一个数是奇数偶数

int num = 10;

if(num%2==0){

System.out.println("num是偶数);

}

else

{

System.out.println("是奇数"):

}

【小练习】

判断一个数字是正数,负数,还是零

int num = 0;

if(num>0){

System.out.println("正数“);

}

else if(num<0){

System.out.println("负数“);

}

else{

System.out.println("零“);

}

【小练习】

判断一个数是否为闰年

int year = 2000;

if(year %100 ==0){

//判断世纪闰年

if(year % 400 == 0){

System.out.println("是闰年“);

}

else{

System.out.println("不是闰年“);

}

}

else{

if(year%4==0){

System.out.println("是闰年“);

}

else{

System.out.println("不是闰年“);

}

}

【注意事项】

1.代码风格

//风格1  推荐

int x = 10;

if(x == 10){

//语句1;

}

else{

//语句2

}

//风格2

nt x = 10;

if(x == 10)

{

//语句1;

}

else

{

//语句2

}

虽然两种方式都是合法的,但是java中更推荐风格1       {放在同一行显得很紧凑

2.分号问题

int x = 20;

if(x == 10);

{

System.out.printfln("hehe");

}

//运行结果

hehe

此外多写了一个分号,导致分号成为了if语句的语句体,而{ }中的代码已经和if无关的代码块。

3.悬垂else问题

int x = 10;

int y = 10;

if(x == 10)

if( y == 10)

System.out.printnln("aaa");

else

System.out.printnln("bbb");

if/else 语句中可以不加大括号,但是也可以写语句(只能写一条语句)。此时else与最近的if结合,但是不建议这样用。

3.2 switch语句

基本语法

switch(表达式){

case常量值1:{

语句1;

break;

}

case常量值2:{

语句2;

break;

}

...

default:{

内容都卜满足执行语句:

break;

}

}

执行流程:

1.先计算表达式的值

2.和case依次比较,一旦响应的匹配就执行该项下的语句,直到遇到break时结束

3.当表达式的值没有与所列项匹配时,执行default

代码示例:

根据day的值输出星期

int day = 1;

switch(day){

case 1:

System.out.printnln("星期一");

break;

}

case 2:

System.out.printnln("星期二");

break;

}

case 3:

System.out.printnln("星期三");

break;

}

case 4:

System.out.printnln("星期四");

break;

}

case 5:

System.out.printnln("星期五");

break;

}

case 6:

System.out.printnln("星期六");

break;

}

case 7:

System.out.printnln("星期日");

break;

}

default:

System.out.printnln("输入有误");

break;

}

[注意事项】

1.多个case后的常量值不可以重复

2.switch的括号内只能是以下类型的表达式

基本类型:byte,char,short,int,注意不能是long类型

引用类型:String常量字符串,枚举类型

double num = 1.0;

switch(num){

case 1.0:

System.out.println("hehe");

break;

case 2.0:

System.out.println("haha");

break;

}

//编译报错

不兼容类型,从double到int会有可能数据缺失

注意:break不要遗漏,否则会失去"多分支选择“的效果

int day = 1;

switch(day){

case 1:

System.out.println("星期一");

case 2:

System.out.println("星期二");

break;

}

//运行结果

星期一

星期二

注意:switch不能表达复杂的条件

//例如:如果num的值也在10到20之间,就打印hehe

//这样的代码使用if很容易表达出来,但是谁用switch就无法表达

if(num>10 && num<20){

System.out.println("hehe");

}

注意:switch虽然支持嵌套,但是很丑,一般不推荐

int x = 1;

int y = 1;

switch(x){

case 1:

switch(y){

case 1 :

System.out.println("hehe");

break;

}

break;

case 2:

System.out.println("haha");

break;

}

代码的美观程度也是一个重要的标准,毕竟这是一个看脸的时代

综上:我们发现,switch的使用局限比较大

4.循环结构

4.1 while循环

基本语法格式:

while(循环条件){

循环语句;

}

循环条件为true,则执行循环语句:否则结束循环

代码示例1:打印1-10 的数字

int a = 1;

while(a<1=0){

System.out.println(a);

a++;

}

代码示例2:计算1-100的和

int n = 1;

int result = 0;

while(n<=100){

result+=n;

n++;

}

System.out.println(m);

//执行结束:5050

代码示例3:计算5的阶乘

int m = 1;

int result = 1;

while(n<=5){

result *=n;

n++;

}

System.out.println(n);

//执行结果

120

代码示例4:计算1!+ 2! + 3! + 4! + 5!

int n = 1;

int count = 1;

int result = 0;

while(n<=5){

while( n--){

count*=n;

}

result+=count;

n++;

}

System.out.println(result);

这里我们发现,当一个代码中带有多重循环的时候,代码的复杂程度就大大提高了,因此比较复杂的代码容易出错。后面我们会想办法来解决这个问题

注意事项

1.和if 类似whie 下面的语句可以不写(),但是不写的时候只能支持一条语句.建议还是加上{ }

2.和if 类似while 后面的建议和 while 写在同一行.
3.和if 类似while 后面不要多写分号否则可能导致循环不能正确执行

int num = 1;

while(num <= 10);{

System.out.println(result);

num++;

}

//执行结果

无任何输出,程序死循环

此时:为了while的语句体(这是一个空语句),实际的()部分和循环无关,此时循环条件num<=10恒成立,导致代码死循环了。

4.2 break

break的功能是让循环提前结束

代码示例:

找到100-200中第一个3的倍数

int num = 100;

while(num <= 200){

if(num%3 == 0){

System.out.println("找到了3的倍数);

break;

}

num++;

}

//执行结果

找到了3的倍数为102

执行到break就会让循环结束。

4.3 continue

continue的功能是跳过这次循环,立即进入下次循环

代码示例:找到100-200中所以3的倍数

int num = 100;

while(num <= 200){

if(num % 3 !=0){

num++;   //这里的++不要忘记,否则会死循环

countine;

}

System.out.println("找到了,3的倍速为"+num);

num++;

}

执行到countinue语句的时候,就会立刻进入下次循环(判定循环条件),从而不会执行到下方的打印语句。

4.4 for循环

【基本语句】

for(表达式1;表达式2;表达式3){

表达式4;

}

表达式1:用于初始化循环变量设置,在循环最开始时执行,且执行一次

表达式2:循环条件,满则循环继续,否则循环结束

表达式3:循环变量更新方式

【执行过程】

1234--234--234--直到2为false,循环结束

【代码示例】

1.打印1-10的数字

for(int i = 1; i <= 10; i++){

System.out.println(i);

}

2.计算1-100的和

int sum = 0;

for(i = 1; i<=100; i++){
sum+=i;

}

System.out.println(sum);   // 执行结果5050

3.计算5的阶乘

int result = 1;

for(int = i; i<= 5; i++){

result *= i;

}

System.out.println(result);

4.计算1! + 2!+ 3! + 4!+ 5!

int sum = 0;

for(int i = 1; i <= 5; i++){

int tem p = 1;

for(int j =1; j <= i; j++){

tmp *= j;

}

sum += tmp;

}

System.out.println(sum); 

【注意事项】(和while循环相似)

1.和if 类似for 下面的语句可以不写,但是不写的时候只能支持一条语句,建议还是加上{}

2.和if 类似for 后面的建议和 while 写在同一行.
3.和if 类似for后面不要多写分号否则可能导致循环不能正确执行4.和while循环一样,结束单趟循环用continue,结束整个循环用break

4.5 do  while循环

【基本语法】

do{

循环语句:

}while9循环语句};

先执行循环语句,再判断循环条件,循环条件成立继续执行,否则循环结束

例如打印1-10

int num = 1;

do{

System.out.println(num);

num++;

}while(num <= 10);

【注意事项】

1.do while循环最后的分号不要忘记

2.一般do while很少用到,更推荐for和while

5.输入输出

5.1 输出到控制台

基本语法

System.out.println(maas);    //输出一个字符串带换行

System.out.print(sfd);            //输出一个字符串不带换行

System.out.printf(format,maf);       //格式化输出

总结:print;n输出的内容自带\n,print不带\n

printf的格式化输出方式和c语言的printf是基本一致

【代码示例】

System.out.println(“hello shousidaima”);

int x = 10;

System.out.printf("x=%d\n",x);

最后再给大家一些习题帮助大家掌握知识点和小结论:

【第一题】

long float double boolean 都不可以作为switch的参数

除了这些基本数据类型,后续说道的枚举,String也可以作为Switch的参数

故选择A D.

希望对刚接触的小白有所帮助,创作不易,给个免费的赞和关注,谢谢各位----------------------

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

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

相关文章

shopee——排序模型AUC还能涨吗?

文章目录 CBMRMultiCBMRSample Weight Assignment多任务推荐模型 CBMR MultiCBMR Sample Weight Assignment Click-aware Structure Transfer with Sample Weight Assignment for Post-Click Conversion Rate Estimation 每个用户的top-k 邻居每个商品的top-k 邻居平滑处理并构…

Windows【工具 04】WinSW官网使用说明及实例分享(将exe和jar注册成服务)实现服务器重启后的服务自动重启

官方Github&#xff1b;官方下载地址。没有Git加速的话很难下载&#xff0c;分享一下发布日期为2023.01.29的当前最新稳定版v2.12.0网盘连接。 包含文件&#xff1a; WinSW-x64.exesample-minimal.xmlsample-allOptions.xml 链接&#xff1a;https://pan.baidu.com/s/1sN3hL5H…

02_elasticsearch 核心概念

02_elasticsearch 核心概念 1、lucene和elasticsearch的前世今生2、elasticsearch的核心概念 1、lucene和elasticsearch的前世今生 1、lucene和elasticsearch的前世今生 lucene&#xff1a;最先进、功能最强大的搜索库。但是直接基于lucene开发&#xff0c;非常复杂&#xff…

Idea安装webservice插件

打开Idea的settings菜单&#xff0c;选择Plugins&#xff0c;模糊搜索"Web Ser"&#xff0c;安装以下3个红框内插件&#xff1a; 安装好以上3个插件后&#xff0c;就可以根据需求生成webservice客户端或者webservice服务端了。

【C语言】进阶——指针

目录 ①(●◡●)前言 1.字符指针 ✌字符指针和数组笔试题 2.指针数组 和数组指针 &#x1f44a;指针数组 &#x1f44a;数组指针 &#x1f44a;&数组名和数组名 3.数组传参和指针传参 &#x1f44a;一维数组传参 &#x1f44a;二维数组传参 &#x1f44a;一级…

Gmail邮箱注册情况及最新动态

在中国大陆地区&#xff0c;对于是否可以注册Gmail邮箱一直存在一定的限制和讨论。准确来说&#xff0c;中国大陆地区的用户目前无法直接访问和注册Gmail邮箱。由于某些政策和技术原因&#xff0c;中国政府对于一些外国的网站和服务实施了网络封锁与限制。因此&#xff0c;中国…

聊聊Go语言的向前兼容性和toolchain规则

Go语言在发展演进过程中一直十分注重向后兼容性(backward compatibility)&#xff0c;在Go 1.0版本发布[1]之初就发布了Go1兼容性承诺[2]&#xff0c;简单来说就是保证使用新版本Go(比如Go 1.21版本[3])可以正常编译和运行老版本的Go代码(比如使用Go 1.18版本[4]语法编写的go代…

Docker实战技巧(一):Kubernetes基础操作实战

Kubernetes定位在Saas层,重点解决了微服务大规模部署时的服务编排问题 1、关闭防火墙并设置开机禁用   systemctl stop firewalld   systemctl disable firewalld 2、配置repo   cd /etc/yum.repos.d/   下载Docker repo   wget https://mirrors.aliyun.com/docker-…

torch.nn.Parameter()函数

引言 在很多经典网络结构中都有nn.Parameter()这个函数&#xff0c;故对其进行了解 pytorch官方介绍&#xff1a; 语法结构&#xff1a; torch.nn.parameter.Parameter(dataNone, requires_gradTrue) """ data (Tensor) – parameter tensor. —— 输入得是…

聊聊Spring事务同步器TransactionSynchronization

在一些业务场景中可能我们需要去对某一个spring事务的生命周期进行监控&#xff0c;比如在这个事务提交&#xff0c;回滚&#xff0c;被挂起的时候&#xff0c;我们想要去执行一些自定义的操作&#xff0c;这怎么去做呢&#xff1f;其实spring作为一个高扩展性的框架&#xff0…

中秋特辑:Java事件监听实现一个猜灯谜小游戏

众所周知&#xff0c;JavaSwing是Java中关于窗口开发的一个工具包&#xff0c;可以开发一些窗口程序&#xff0c;然后由于工具包的一些限制&#xff0c;导致Java在窗口开发商并没有太多优势&#xff08;当然也有一些第三方的工具包也很好用&#xff09;&#xff0c;不过&#x…

使用Python CV2融合人脸到新图片--优化版

优化说明 上一版本人脸跟奥特曼图片合并后边界感很严重&#xff0c;于是查找资料发现CV2还有一个泊松函数很适合融合图像。具体代码如下&#xff1a; import numpy as np import cv2usrFilePath "newpic22.jpg" atmFilePath "atm2.jpg" src cv2.imrea…

java基础-集合-ArrayList(JDK1.8)源码学习

文章目录 类图新增addensureCapacityInternalensureExplicitCapacitygrowhugeCapacity 删除removefastRemove 遍历Iterator 类图 新增 add public boolean add(E e) {// 根据注释可知 Increments modCount!!&#xff0c;modCount下面详解ensureCapacityInternal(size 1); //…

特斯拉Dojo超算:AI训练平台的自动驾驶与通用人工智能之关键

特斯拉公开Dojo超算架构细节&#xff0c;AI训练算力平台成为其自动驾驶与通用人工智能布局的关键一环 在近日举行的Hot Chips 34会议上&#xff0c;特斯拉披露了其自主研发的AI超算Dojo的详细信息。Dojo是一个可定制的超级计算机&#xff0c;从芯片到系统全部由特斯拉自主设计…

如何优化网站SEO(百度SEO优化的6个方案及密度)

一&#xff1a;蘑菇号https://www.mooogu.cn/ SEO优化是提高网站在搜索引擎中排名的关键技术。对于新网站而言&#xff0c;如何快速提高百度排名是每个站长需要关注的问题。下面我们将介绍新网站百度SEO具体方法。 二&#xff1a; 首先&#xff0c;通过网站架构优化来提高页…

解决5053无法安装驱动的故障

用5053连接车机&#xff0c;发现驱动上面有一个问号&#xff0c;看来驱动出问题了&#xff0c;试着用原来的办法无法强行安装&#xff0c;出现如下报错: 主要原因是老旧的设备驱动程序没有及时更新&#xff0c;遭到了新系统的嫌弃&#xff0c;导致数字签名验证失败&#xff0c;…

golang for循环append的数据重复

原因&#xff0c;因为使用了& 需要增加一行&#xff0c;问题解决

华为云云耀云服务器L实例评测| 搭建属于自己的第一个中秋快乐网页

华为云服务器 1 如何快速获得一个华为云服务器1.1 注册华为云账号1.2 选择华为云服务器实例 (云耀L系列)1.3 选择服务器区域1.4 选择实例规格1.5 付款界面确认实例参数&#xff0c;支付即可 2 运行自己的服务器2.1 找到自己的服务器控制面板2.2 了解服务器面板2.3 登录我们的服…

【网络编程】TCP Socket编程

TCP Socket编程 1. ServerSocket2. Socket3. TCP的长短连接4. Socket 通信模型5. 代码示例&#xff1a;TCP 回显服务器 流套接字&#xff1a; 使用传输层TCP协议 TCP: 即Transmission Control Protocol&#xff08;传输控制协议&#xff09;&#xff0c;传输层协议。 TCP的特点…

Pycharm配置环境以及Teminal不能使用问题解决

Pycharm配置环境 配置好环境后点击Terminal Teminal不能使用问题解决 我的报错信息&#xff1a; Import-Module : 无法加载文件 D:\Anaconda\shell\condabin\Conda.psm1&#xff0c;因为在此系统上禁止运行脚本。 解决方案&#xff1a; 第一步.&#xff1a;在 Windows 下用…