第02章-变量与运算符

1 关键字

关键字被Java语言赋予了特殊含义,用作专门用途的字符串(或单词)。如classpublicstaticvoid等,这些单词都被Java定义好了,称为关键字。

  • 特点:关键字都是小写字母
  • 官方地址:Java Language Keywords (The Java™ Tutorials > Learning the Java Language > Language Basics)icon-default.png?t=N7T8https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

 2 标识符

标识符:Java中变量、方法、类等要素命名时使用的字符序列,称为标识符。简单的说凡是可以自己命名的地方法都是标识符,如类名、方法名、变量名等等。

标识符命名规则必须遵守,不遵守会报错

  • 由26个英文字母大小写,0-9,_或$组成;
  • 不能包含空格,不能以数字开头;
  • 不能与关键字或保留字相同;
  • 严格区分大小写,长度不限;
  • 定义标识符时要“见名知意”。

标识符命名规范建议遵守,不遵守也可以,但遵守了显得更专业

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz。如java.lang
  • 类名、接口名:多单词组成时所有字母的首字母大写:XxxYyyZzz。如Hello
  • 变量名、方法名:多单词组成时第一个单子首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz。如bookName
  • 常量名:所有字母都大写,多单词组成时每个单词之间用下划线链接:XXX_YYY_ZZZ。如MAX_VALUE

3 变量

变量:内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化。

  • 变量三要素:数据类型变量名存储的值
  • Java中变量声明的格式:数据类型 变量名 = 变量值;
  • 变量的作用:在内存中保存数据
  • 变量都有作用域,只在作用域内生效,同一作用域内变量不能重名
class VariableTest{public static void main(String[] args) {//变量的声明//分步式:先声明,再初始化char gender;gender = '男';//一步式:声明同时初始化int age = 18;//变量的使用,直接调用变量名System.out.println(gender+""+age);}
}

4 数据类型

表数范围计算公式

整型

  • 整数类型包括byteshortintlong
  • 注意:

        1. 声明整型变量时遵守保小不保大,数据类型能小则小;

        2. 整型常量默认为int占用空间更小,声明long型常量须后加lL

  • 各整数类型有固定的表数范围和占用存储空间: 

 浮点型

  • 整数类型包括floatdouble
  • float:单精度,尾数可以精确到7位有效数字;
  • double:双精度,精度是float的两倍;
  • 注意: 浮点型型常量默认为double精度更高,声明float型常量须后加fF
  • 浮点型表数范围和占用空间:

  • 浮点型常量的两种表示形式:
  1. 十进制形式。如5.12 512.0f .512(必须有小数点)
  2. 科学计数法形式。如5.12e2 512E2 100E-2

 关于浮点型精度的说明: 

  1. 不是所有小数都可以精确的使用二进制浮点数表示。二进制浮点不能精确的表示0.1、0.01、0.001这样10的负次幂。
  2. 浮点型float、double的数据不适合在不容许舍入误差的金融计算领域,如果需要精确数字计算或保留指定位数的精度,需要使用BigDecimal类
  3. 浮点在机器中存放的形式,浮点数=符号位+指数位+尾数位。浮点数float超出存储空间的值会被丢掉
  4. 演示:
// 1.float精度不高,超出存储范围的部分会被丢掉
float num1 = 2.1234567851f;
double num2 = 2.1234567851f;
System.out.println("float=" + num1 + "\ndouble=" + num2);
// 2.二进制浮点数不能准确的表示0.1、0.01、0.001等10的负次幂的数
System.out.println(0.1 + 0.2);
// 3.浮点型使用陷阱
double num3= 2.7;
double num4=8.1/3;
System.out.println(num3 == num4);
float  f1 = 123123123f;
float f2 = f1+1;
System.out.println(f1);
System.out.println(f2);
System.out.println(f1== f2);

应用案例:

案例1:定义圆周率并赋值为3.14,现在3个圆的半径分别为1.2、2.5、6,求他们的面积

/*** @author shbzhao* @version 1.0* @date 2023/8/26-0:34* @description 定义圆周率并赋值为3.14,现在3个圆的半径分别为1.2、2.5、6,求他们的面积*/
public class FloatDoubleExer {public static void main(String[] args) {double PI = 3.14; //圆周率double radius1 = 1.2;double radius2 = 2.5;double radius3 = 6;System.out.println("第1个圆的面积=" + PI * radius1 * radius1);System.out.println("第2个圆的面积=" + PI * radius2 * radius2);System.out.println("第3个圆的面积=" + PI * radius3 * radius3);}
}

 案例2:将华氏温度转为摄氏温度(℃):℃=(℉ - 32) / 1.8

/*** @author shbzhao* @version 1.0* @date 2023/8/26* 将华氏温度转为摄氏温度(℃):℃=(℉ - 32) /1.8*/
public class FloatDoubleExer02 {public static void main(String[] args) {double hua = 80.0;double she = (hua-32)/1.8;System.out.println("华氏度"+hua+"℉=摄氏度"+she+"℃");}
}

 字符型

  • char类型数据用来表示通常意义上“字符”(占2字节)
  • 字符型变量的三种表现形式:
  1. 形式1:使用单引号('')括起来的单个字符。如:char c1 = 'a'; char c2 = '男'; char c3 = 9;
  2. 形式2:直接使用Unicode值来表示字符常量:‘\uXXXX’。其中,XXXX表示一个十六进制整数。如:\u0023 表示'#'。
  3. Java中还允许使用转义字符'\',来将其后的字符转变为特殊字符型常量。如:char c4 = '\n';,'\n'表示换行符
  4. char类型是可以进行运算的,它都对应有Unicode码,可以看作是一个数值,ASCII码值。
  • 演示:
/*** @author shbzhao* @version 1.0* @date 2023/8/26*/
public class CharBooleanTest {public static void main(String[] args) {//1.字符类型 char(2字节)//2.表示形式//2.1 使用单引号('')括起来的单个字符char c1 = 'a';char c2 = '1';char c3 = '男';char c4 = '@';//2.2 直接使用Unicode值来表示字符常量:'\'uXXXX'。其中,XXXX表示一个十六进制整数。char c5 = '\u0036'; //表示后买你System.out.println(c5);//2.3使用转义字符'\',来将其后的字符转变为特殊字符型常量。char c6 = '\n';//2.4char类型是可以进行运算的,它都对应有Unicode码,可以看作是一个数值,ASCII码值char c7 = 97;System.out.println(c7);}
}

布尔型

  • 布尔类型(boolean),只有两个值true、false;
  • 常用于逻辑条件的判断,如条件判断、分支结构、循环结构等;
  • 演示:

// 布尔类型(boolean) 1字节
// 1.只有两个值true和false
boolean b1 = true;
boolean b2 = false;
// 不能使用0和1代替true和false
// boolean b3 = 0; //编译不通过// 常用于条件判断或循环语句中
boolean isStudent = true;
if (isStudent){System.out.println("是学生");
}else{System.out.println("不是学生");
}

5 数据类型之间的转换

自动类型提升

  • 自动类型转换:数据类型表数范围的自动提升
  • 类型转换规则:
    • 容量较小的类型自动转换为容量大的数据类型(容量是指表数范围的大小);
    • byte、short、char之间运算后为int类型;
    • char不能与short、int转换。
  • 演示:
/*** @author shbzhao* @version 1.0* @date 2023/8/27* 演示基本数据类型之间的类型转换* 包括:*      1.自动 类型转换(数据类型的精度\表数提升)*      2.强制 类型转换* 类型转换规则:容量是指数据类型(表数范围)的大小* 1.容量较小的类型赋值给容量较大的类型时,结果自动转换为容量大的数据类型* 	byte ---> short ---> int ---> long ---> float ---> double* 2.byte、short char之间运算后为int类型:(特殊情况1)*  byte + short ---> int,byte + byte---> int,short + short ---> int* 3.char不能与short、int转换(特殊情况2)*/
public class BasicDataSwitch {public static void main(String[] args) {// 容量是指表数范围的大小// 如long型占8字节,float型占4字节,但是表述范围float更大long l1 = 115431543L;float f1 = l1;float f2 = 2.45465412f;//long l2 = f2; // 编译报错// byte ---> int  okbyte b1 = 1;int i1 = b1 + b1;// int ---> byte//byte b2 = i1 + i1; // 编译报错// 特殊情况1:byte + short ---> intbyte b3 = 11;short s1 = 12;//short s2 = s1+b3; // 编译报错int i2 = s1 + b3;//  特殊情况2:char不能与byte、short进行类型转换char c1 = 10;//byte b4 = c1; // 编译报错//short s2 = c1; // 编译报错}
}

 强制类型转换

  • 强制类型转换:将取值范围(或容量)大的类型强制转换为取值范围小(或容量小的类型)。
  • 强制类型转换符:"()",在小括号内指定要转换为的数据类型。
  • 强制类型转换可能会导致精度损失。
  • 演示:
/*** @author shbzhao* @version 1.0* @date 2023/8/28* 演示强制类型转换的使用* 规则:*      1.如果需要将容量大的赋值给容量小的类型,需要进行强制类型转换*      2.强制类型转换符:"()",在小括号内指定要转换为的数据类型*      3.强制类型转换可能会导致精度损失*/
public class ForceTypeSwitch {public static void main(String[] args) {// 自动类型提升 int ---> doubledouble d1 = 12;// 尝试double ---> int,编译错误//int i1 = d1;int i2 = (int) d1;System.out.println(i2);long l1 = 666;short s1 = (short) l1;System.out.println(l1);// 精度损失double d2 = 12.3;int i3 = (int) d2;System.out.println(i3);int i4 = 128;byte b1 = (byte) i4;System.out.println(b1);}
}

6 基本数据类型与String类型转换 

  • 基本数据类型-->String类型:使用包装类的parse方法。
  • String类型-->基本数据类型:使用双引号""拼接。
  • 注意:String类型-->基本数据类型时,String数据的格式必须是能够转换的基本数据类型
  • 演示:
/*** @author shbzhao* @version 1.0* @date 2023/8/28* 演示String与基本数据类型之间的转换* 1.基本数据类型-->String类型(使用包装类的parse方法)* 2.String类型-->基本数据类型(使用双引号""拼接)*/
public class StringToBasic {public static void main(String[] args) {// 基本数据类型-->String类型(使用包装类的parse方法)int n1 = 100;float f1 = 1.1f;double d1 = 4.5;boolean b1 = true;String s1 = n1 + "BasicToString";String s2 = f1 + "BasicToString";String s3 = d1 + "BasicToString";String s4 = b1 + "BasicToString";System.out.println(s1);System.out.println(s2);System.out.println(s3);System.out.println(s4);// String类型-->基本数据类型(使用双引号""拼接)// 需要通过基本数据的包装类调用parseXX方法String byteStr = "127";byte b2 = Byte.parseByte(byteStr);String shortStr = "123";short sh2 = Short.parseShort(shortStr);String intStr = "321";int int2 = Integer.parseInt(intStr);String longStr = "321123321";long long2 = Long.parseLong(longStr);String floatStr = "12.3";float float2 = Float.parseFloat(floatStr);String doubleStr = "12.3";double double2 = Double.parseDouble(doubleStr);//char类型调用charAt(0)方法String charStr = "12.3";char char2 = charStr.charAt(0);String booleanStr = "true";boolean boolean2 = Boolean.parseBoolean(booleanStr);System.out.println(b2 + " " + sh2 + " " + int2 + " " + long2 + " " + float2 + " " + double2 + " " + char2 + " " +boolean2);}
}

7 进制运算 

进制的分类

  • 十进制(decimal)
    • 数字组成:0-9
    • 进位规则:满10进1
  • 二进制(bindary):以0b或0B开头
    • 数字组成:0-1
    • 进位规则:满2进1
  • 八进制(octal):很少使用,以数字0开头
    • 数字组成:0-7
    • 进位规则:满8进1
  • 十六进制(bindary):以0x或0X开头
    • 数字组成:0-9和a-f。a-f不区分大小写
    • 进位规则:满16进1
  • 演示:
/*** @author shbzhao* @version 1.0* @date 2023/8/28* 演示二进制数* 用四种进制表示数字20*/
public class BinaryTest {public static void main(String[] args) {// 十进制int num1 = 20;// 二进制int num2 = 0b10100;// 八进制int num3 = 024;// 十六进制int num4 = 0x14;System.out.println(num1);System.out.println(num2);System.out.println(num3);System.out.println(num4); }
}

进制的转换

十进制

二进制

八进制

十六进制

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

a

11

1011

13

b

12

1100

14

c

13

1101

15

d

14

1110

16

e

15

1111

17

f

16

10000

20

10

其它进制转十进制:

  • 二进制转十进制:从最低位(右边)开始,将每一位上的数提取出来,乘以2的(位数-1)次方。位数是指从右边数第几位。如0b1011=1*2^(4-1) + 0*2^(3-1) + 1*2^(2-1) + 1*2^(1-1)
  • 八进制转十进制:从最低位(右边)开始,将每一位上的数提取出来,乘以8的(位数-1)次方。
  • 十六进制转十进制:从最低位(右边)开始,将每一位上的数提取出来,乘以16的(位数-1)次方。

 十进制转其它进制:将十进制连续除以其它进制数,直到商为0,取每步的余数倒置就是对应的进制数。

  • 十进制转二进制:十进制数连续除以2,直到商为0,取每步的余数倒置
  • 十进制转八进制:十进制数连续除以8,直到商为0,取每步的余数倒置
  • 十进制转十六进制:十进制数连续除以16,直到商为0,取每步的余数倒置

二进制转八、十六进制:

  • 二进制转八进制:将二进制数的每3位为一组(从右开始个位数的值分别是421),每一组对应转换为一个8进制数。
  • 二进制转十六进制:将十六进制的每4位为一组(从右开始个位数的值分别是8421),每一组对应转换为一个16进制数。

 8 运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等等。

运算符的分类:算术运算符、赋值运算符、比较(或关系)运算符、逻辑运算符、位运算符、条件运算符、Lambda运算符。

分类

运算符

算术运算符(7个)

+  -  *  /  %  ++  --

赋值运算符(12个)

=  +=  -=  *=  /=  %=  >>=  <<=  >>>=  &=  |=  ^=

比较(或关系)运算符(6个)

>  >=  <  <=  ==  !=

逻辑运算符(6个)

&  |  ^  !  &&  ||

位运算符(7个)

&  |  ^  -  <<  >>  >>>

条件运算符(1个)三元运算符

条件表达式?表达式1:表达式2;

Lambda运算符(1个)

->(Java新特性章节讲解)

算术运算符

运算符

功能

范例

结果

+

正号

+3

3

-

负号

b=4; -b;

-4

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模(取余)

7%5

2

++i

自增(前):先自增,后赋值

a=2;b=++a;

a=3;b=3

i++

自增(后):先赋值,后自增

a=2;b=a++

a=3;b=2

--i

自减(前):先自减,后赋值

a=2;b=--a

a=1;b=1

i--

自减(后):先赋值,后自减

a=2;b=a--

a=1;b=2

+

字符串拼接

"Hello"+"world"

"Helloworld"

赋值运算符 

赋值运算符是将某个运算后的值赋给指定的变量。

  • 基本赋值运算符:"=",如int n = 1;;
    • 当"="两边数据类型不一致时,可以使用自动类型提升或强制类型转换进行处理;
  • 复合赋值运算符:+=、-+、*=、/=、%=,如n += 3;等价于n = n + 3;;
    • 注意:复合赋值运算符会进行类型转换,底层具有强制类型转换符。
  • 演示:
/*** @author shbzhao* @version 1.0* @date 2023/8/28* 演示赋值运算符*/
public class SetValueTest {public static void main(String[] args) {int n = 10;// 1.当"`=`"两边数据类型不一致时,可以使用`自动类型提升`或`强制类型转换`进行处理long l1 = n; // 自动类型提升byte b1 = (byte) n; // 强制类型转换// 2.允许连续赋值int a, b;a = b = 100;// 3.复合赋值运算符会进行`类型转换`,底层具有`强制类型转换符`byte n1 = 12;n1 += 3; // 等价于n1=(byte)(n1+3),强制类型转换为intSystem.out.println(n1);}
}
  • 练习1:
int n = 10;
n += (n++) + (++n); // 等价于n = n + (n++) + (++n)
// num = 10 + 10 + 12,先计算n++和++n
System.out.println(n);

 关系运算符

关系运算符的结果都是boolean类型truefalse

  • 关系运算符:>>=<<===!=
  • ==和!=适用于基本数据类型和引用数据类型,其它只适用于基本数据类型;
  • 注意:=是赋值运算符,==是关系运算符

运算符

功能

范例

结果

==

等于

8 == 7

false

!=

不等于

8 != 7

true

>

大于

8 > 7

true

>=

大于等于

8 >= 7

true

<

小于

8 < 7

false

<=

小于等于

8 <= 7

false

A instanceof B

检测A是否为B类的对象

"ahhlt" instanceof String

true

 逻辑运算符

逻辑运算符只对boolean类型进行操作,结果也是boolean类型的值。

运算符

功能

&&&

表示""关系,符号两边同时为true时,结果为true。助记:同1为1,1为true,0为fasle

|||

表示""关系,符号两边只要有一个为true,结果为true。助记:有1为1

!

表示""关系,变量的值为true时,结果为false。助记:取反

^

表示"异或"关系,符号两边的值不同时,结果为true。助记:有同为0,不同为1

 逻辑运算与短路运算的区别:

  • 短路与(&&)和逻辑与(&):
    • 短路与(&&):条件1 && 条件2,若条件1为false,则不再判断条件2。
    • 逻辑与(&):条件1 & 条件2,若条件1为false,继续判断条件2。
    • 注意:开发中一般使用短路与,除非特定情况才使用逻辑与。
  • 短路或(||)和逻辑或(|):
    • 短路或(||):条件1 || 条件2,若条件1为true,则不再判断条件2。
    • 逻辑或(|):条件1 | 条件2,若条件1为true,继续判断条件2。

三元运算符 

  • 语法格式:(条件表达式)?表达式1:表达式2
  • 运算规则:如果条件表达式的值为true,运算结果为表达式1,否则为表达式2
  • 表达式1和表达式2必须是可以赋给接收变量的类型(可以自动转换或语法强转)
/*** @author shbzhao* @version 1.0* @date 2023/8/28* 条件表达式的使用*/
public class ConditionTest {public static void main(String[] args) {int a = 10;int b = 99;int result = (a > b) ? a++ : b--;// a > b为false,返回第二个表达式b--,先将b的值返回,b再自减System.out.println("result= " + result);System.out.println("b= " + b);// 表达式类型与接收变量类型不同时,必须满足类型自动转换或者强制转换int c = a > b ? (int)1.1 : (int)2.2;}
}

位运算符

位运算

  • 计算机进行运算时,都是对补码进行运算,显示运算结果时将计算后的补码转为原码;
  • 正数的原码、反码、补码都相同,称三码合一
  • 负数的三码:
    • 反码:原码除符号位不变,其它位取反
    • 补码:反码+1。相应的:负数的反码= 补码-1
    • 符号位:二进制的最高位(最左边)为符号位,0代表正数,1代表负数

位运算符

二进制补码进行运算

运算符

功能

&

按位与,全1为1

|

按位或,有1为1

^

按位异或,不同为1,相同为0

~

按位取反,每位都取相反值

<<

左移,符号位不变,低位补0。左移n位相当于乘2的n次方

>>

右移,符号位不变,用符号位补高位空缺。右移n位相当于除2的n次方

>>>

无符号右移,低位溢出,高位补0

演示:

/*** @author shbzhao* @version 1.0* @date 2023/8/28*/
public class BitOperatorTest {public static void main(String[] args) {/** 1.按位与(&):2 & 3* 正数的原码、反码、补码都相同* 2的三码:00000000 00000000 00000000 00000010* 3的三码:00000000 00000000 00000000 00000011* 2 & 3: 00000000 00000000 00000000 00000010* 结果为2** 2.按位或(&):* */System.out.println(2 & 3);}
}

 运算符优先级

优先级

运算符说明

Java运算符

1

括号

()、[]、{}

2

正负号

+、-

3

单元运算符

++、--、~、!

4

乘、除、取余

*、/、%

5

加、减

+、-

6

位移运算符

<<、>>、>>>

7

关系运算符

>、>=、<、<=、==、!=、instanceof

8

按位与

&

9

按位异或

^

10

按位或

|

11

短路与

&&

12

短路或

||

13

三元运算符

条件表达式?表达式1:表达式2;

14

赋值运算符

=、+=、-=、*=、/=、%=、>>=、<<=、>>>=、&=、|=、^=

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

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

相关文章

CSS与基本选择器

<div class"c1" id"d1"></div> CSS基本知识 什么是css&#xff1a;CSS&#xff08;Cascading Style Sheet&#xff0c;层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表&#xff0c;他就会按照这个样式l来进行渲染。其实就是让HT…

Langchain-Chatchat项目:4.1-P-Tuning v2实现过程

常见参数高效微调方法(Parameter-Efficient Fine-Tuning&#xff0c;PEFT)有哪些呢&#xff1f;主要是Prompt系列和LoRA系列。本文主要介绍P-Tuning v2微调方法。如下所示&#xff1a; Prompt系列比如&#xff0c;Prefix Tuning(2021.01-Stanford)、Prompt Tuning(2021.09-Goo…

音视频rtsp rtmp gb28181在浏览器上的按需拉流

按需拉流是从客户视角来看待音视频的产品功能&#xff0c;直观&#xff0c;好用&#xff0c;为啥hls flv大行其道也是这个原因&#xff0c;不过上述存在的问题是延迟没法降到实时毫秒级延迟&#xff0c;也不能随心所欲的控制。通过一段时间的努力&#xff0c;结合自己闭环技术栈…

基于Java(SpringBoot框架)毕业设计作品成品(35)AI人工智能毕业设计AI图像卡通动漫化图像风格迁移系统设计与实现

博主介绍&#xff1a;《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff0c;免费 项…

Rust 语言常见的一些概念(下)

目录 1、函数 参数 语句和表达式 具有返回值的函数 2、注释 文档注释 多行注释 3、控制流 3.1 if 表达式 3.2 使用esle if 处理多重条件 3.3 在 let 语句中使用 if 3.4 使用循环重复执行 使用 loop 重复执行代码 从循环中返回值 循环标签&#xff1a;在多个循环…

【PyQt学习篇 · ⑨】:QWidget -控件交互

文章目录 是否可用是否显示/隐藏是否编辑是否为活跃窗口关闭综合案例信息提示状态提示工具提示“这是什么”提示 焦点控制单个控件角度父控件角度 是否可用 setEnabled(bool)&#xff1a;该函数用于设置QWidget控件的可用性&#xff0c;参数bool为True表示该控件为可用状态&…

08-Docker-网络管理

Docker 在网络管理这块提供了多种的网络选择方式&#xff0c;他们分别是桥接网络、主机网络、覆盖网络、MACLAN 网络、无桥接网络、自定义网络。 1-无桥接网络&#xff08;None Network&#xff09; 当使用无桥接网络时&#xff0c;容器不会分配 IP 地址&#xff0c;也不会连…

Day18力扣打卡

打卡记录 寻找重复数&#xff08;双指针&#xff09; 链接 Floyd判圈法&#xff0c;先用快慢指针以不同速率进行移动&#xff0c;最终一定会出现相遇点&#xff0c;然后在使一指针从初始开始&#xff0c;两指针再以同步调移动&#xff0c;再次相遇的点一定为循环开始的点位。 …

【计算机网络笔记】传输层——TCP特点与段结构

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

图论问题建模和floodfill算法

目录 引入&#xff1a;leetcode695.岛屿的最大面积 分析与转换 一维二维转换 四联通 完整代码解答&#xff1a; 1&#xff09;显示的创建图解决问题的代码 2&#xff09;不显示的创建图解决此问题的代码 floodfill算法 定义 引入&#xff1a;leetcode695.岛屿的最大面…

R语言用jsonlite库写的一个图片爬虫

以下是一个使用R语言和jsonlite库下载图片的程序。首先&#xff0c;我们需要导入jsonlite库和options()函数&#xff0c;然后将代理服务器的主机名和端口号设置为"duoip"和"8000"。接着&#xff0c;我们将URL设置为"https://yun.baidu.com/"&…

3dMax章鱼插件Octopus

3dMax章鱼插件Octopus 3dMax章鱼插件&#xff0c;不仅在视口中以饼状的形式&#xff0c;呼出各种属性参数&#xff0c;方便调用&#xff0c;而且是一个可编写脚本的框架&#xff0c;因此您有很多机会创建自己的菜单并轻松分发。整个OCTOPUS系统可以使用maxscript进行自定义&…