Java基础02-Java编程基础

文章目录

  • 变量(Variables)
    • 局部变量和成员变量
      • 局部变量(Local Variables)
      • 成员变量(Instance Variables)
  • 标识符(Identifiers)
  • 八种基本数据类型
    • 原始数据类型(Primitive Data Types)
      • 字节占用
    • 引用数据类型(Reference Data Types)
  • 进制与转换
    • 进制
    • 进制转换
  • 基本数据类型转换
      • 1. 自动类型转换(隐式类型转换)
      • 2. 强制类型转换(显式类型转换)
      • 3. 注意事项
  • 关键字
  • 转义字符
  • 运算符与优先级
  • 分支语当
      • 1. if 语句
      • 2. switch 语句
    • 分支语句的使用原则
  • 循环语句
    • 1. for 循环
      • 六种常见的`for`循环写法
    • 2. while 循环
    • 3. do-while 循环

变量(Variables)

在Java中,变量是用于存储数据值的容器。你可以把变量看作是一个命名的存储位置。在Java中,每个变量都有一个数据类型,它决定了变量可以存储的数据的类型。在使用变量之前,你需要先声明它,然后给它赋值。

// 声明一个整数类型的变量
int myNumber;// 给变量赋值
myNumber = 10;// 也可以在声明的同时进行赋值
int anotherNumber = 20;
char asc = 97; // 这里使用ascii码赋值单个字符// 使用变量
int result = myNumber + anotherNumber;
System.out.println(result); // 输出:30

在Java中,变量可以分为局部变量(Local Variables)和成员变量(Instance Variables)。这两种变量在其作用域和生命周期上有一些不同。

局部变量和成员变量

局部变量(Local Variables)

局部变量是在方法、代码块或构造方法内部声明的变量。它们只在声明它们的方法、代码块或构造方法中可见,超出这个范围就无法访问。局部变量在使用之前必须进行初始化,即给它们赋初值。

public class Example {public void exampleMethod() {// 局部变量 numint num = 10;System.out.println(num);// 其他代码...}public void anotherMethod() {// 编译错误!无法访问 exampleMethod 中的局部变量 num// System.out.println(num);}
}

成员变量(Instance Variables)

成员变量是声明在类中但在方法之外的变量。它们通常被称为实例变量,因为它们属于类的实例(对象),每个对象都有自己的一组成员变量。与局部变量不同,成员变量在整个类中都是可见的,可以被类的任何方法访问。

public class Example {// 成员变量int memberVariable;public void setMemberVariable(int value) {// 可以访问成员变量memberVariable = value;}public void printMemberVariable() {// 可以访问成员变量System.out.println(memberVariable);}
}

需要注意的是,成员变量在对象创建时分配内存,而局部变量在方法执行时分配内存。成员变量有默认值,可以不进行显式初始化;而局部变量必须在使用前显式初始化。

总结一下:

  • 局部变量是在方法内部声明的,只在方法内部可见,需要显式初始化。
  • 成员变量是在类中声明的,属于对象,可以被类的任何方法访问,有默认值。

标识符(Identifiers)

标识符是用来标识程序中的各种元素,如变量、方法、类等的名称。在Java中,标识符必须遵循一些规则:

  • 只能包含字母(大写或小写)、数字、下划线(_)和美元符号($)。
  • 必须以字母、下划线(_)或美元符号($)开头。
  • 不能是Java关键字(例如,class、int、if等)。
  • 区分大小写。

以下是一些例子:

// 合法的标识符
int myVariable;
char studentName;
double _salary;
int numberOfStudents;// 不合法的标识符
// int 2students; // 不能以数字开头
// float my-variable; // 不能包含破折号
// boolean class; // 不能使用关键字作为标识符// char 中文; //中文标识符,合法但是不建议使用

要求见名知意,遵守规范。

八种基本数据类型

Java的基本数据类型分为两类:原始数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)

原始数据类型(Primitive Data Types)

  1. 整数类型:
    • byte: 8位,范围为 -128 到 127。
    • short: 16位,范围为 -32,768 到 32,767。
    • int: 32位,范围为 -2^31 到 2^31-1。
    • long: 64位,范围为 -2^63 到 2^63-1。

在内存计算过程中,字节少的数据运算速度更快,在硬盘存储中字节少的数据类型也可充分存入更多的数据

byte myByte = 100;
short myShort = 1000;
int myInt = 100000;
long myLong = 1000000000L; // 注意:long类型需要在数值后面加上 "L" 或 "l"。

注意:long类型需要在数值后面加上 “L” 或 “l”。其中小写l1不好区分建议大写。

  1. 浮点数类型:
    • float: 32位,范围约为 ±3.4e-38 到 ±3.4e+38,精度为6-7位小数。
    • double: 64位,范围约为 ±1.7e-308 到 ±1.7e+308,精度为15位小数。
float myFloat = 3.14f; // 注意:float类型需要在数值后面加上 "f" 或 "F"。
double myDouble = 3.14;

注意:float类型需要在数值后面加上 “f” 或 “F”。

  1. 字符类型:
    • char: 16位 Unicode 字符,范围为 ‘\u0000’(0)到 ‘\uffff’(65535)。
char myChar = 'A';
  1. 布尔类型:
    • boolean: 表示真(true)或假(false)。
boolean myBoolean = true;

字节占用

在这里插入图片描述

引用数据类型(Reference Data Types)

  1. 类类型:
    • class: 定义对象的模板。
class MyClass {// 类的定义
}MyClass myObject = new MyClass(); // 创建类的实例
  1. 接口类型:
    • interface: 定义一组方法的集合,类实现接口来提供具体实现。
interface MyInterface {// 接口的定义
}class MyImplementation implements MyInterface {// 实现接口的类
}
  1. 数组类型:
    • array: 存储相同类型数据的容器。
int[] intArray = {1, 2, 3, 4, 5};
  1. 枚举类型:
    • enum: 一种特殊的数据类型,用于定义一组常量。
enum Days {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}Days today = Days.MONDAY;

这八种基本数据类型是Java编程中常用的数据类型,了解它们的特性和用法对于编写有效的Java代码至关重要。

进制与转换

在Java中,通常使用的进制是二进制(base-2)、八进制(base-8)、十进制(base-10)和十六进制(base-16)。

进制

  1. 二进制(Binary,base-2): 由0和1组成,是计算机中最基本的进制。

    int binaryNumber = 0b1010; // 前缀0b表示二进制
    
  2. 八进制(Octal,base-8): 由0到7的数字组成。

    int octalNumber = 012; // 前缀0表示八进制
    
  3. 十进制(Decimal,base-10): 我们通常使用的进制,由0到9的数字组成。

    int decimalNumber = 10;
    
  4. 十六进制(Hexadecimal,base-16): 由0到9以及A到F(或a到f)的字母组成。

    int hexNumber = 0xA; // 前缀0x表示十六进制
    

进制转换

在Java中,你可以使用不同的方法将数字在不同进制之间进行转换。

  1. 十进制转其他进制:
int decimalNumber = 15;
String binaryStr = Integer.toBinaryString(decimalNumber); // 十进制转二进制
String octalStr = Integer.toOctalString(decimalNumber); // 十进制转八进制
String hexStr = Integer.toHexString(decimalNumber); // 十进制转十六进制
1111
17
f
  1. 其他进制转十进制:
String binaryStr = "1010";
int decimalNumber = Integer.parseInt(binaryStr, 2); // 二进制转十进制String octalStr = "12";
int decimalNumberOctal = Integer.parseInt(octalStr, 8); // 八进制转十进制String hexStr = "A";
int decimalNumberHex = Integer.parseInt(hexStr, 16); // 十六进制转十进制
1010
10
10

八进制转化成二进制只需将每个八进制数字替换为相对应的三个二进制位即可。

基本数据类型转换

在Java中,基本数据类型之间存在自动类型转换和强制类型转换两种方式。这是由于Java是一种强类型语言,要求在不同类型之间进行转换时要明确规定。

1. 自动类型转换(隐式类型转换)

自动类型转换是指将容量小的数据类型自动提升为容量大的数据类型,不需要人工干预。这种转换是安全的,因为它不会导致数据丢失。

// 示例
int intValue = 10;
double doubleValue = intValue; // 自动将int转换为double

在上面的例子中,int类型的值被自动转换为double类型的值。

2. 强制类型转换(显式类型转换)

强制类型转换是指将容量大的数据类型转换为容量小的数据类型,需要使用强制转换操作符,并且可能会导致数据溢出或失真。在进行强制类型转换时,应该确保转换是安全的,否则可能会导致数据丢失。

// 示例
double doubleValue = 10.5;
int intValue = (int) doubleValue; // 强制将double转换为int

在上面的例子中,double类型的值被强制转换为int类型的值。请注意,小数部分被截断,导致数据丢失。

3. 注意事项

  • 自动类型转换方向: 转换从容量小的类型到容量大的类型是自动的,而反向则需要显式的强制类型转换。

  • 兼容性检查: 在进行强制类型转换时,需要注意数据范围的兼容性,以避免溢出或失真。

以上是关于Java基本数据类型转换的基本概念。记住,在进行类型转换时要确保不会发生数据丢失,并在需要时使用强制类型转换。

关键字

在Java中,关键字是一些被编程语言保留的标识符,它们具有特殊的含义,不能被用作标识符(变量名、类名等)。关键字用于定义语法结构、数据类型、访问权限等,并在程序中具有特殊的用途。以下是Java中一些常用的关键字:

  1. 基本数据类型关键字:

    • int: 定义整数类型。
    • double: 定义双精度浮点数类型。
    • char: 定义字符类型。
    • boolean: 定义布尔类型。
  2. 控制流关键字:

    • if: 条件语句的开始。
    • else: 条件语句的分支,与if一起使用。
    • switch: 多重条件语句。
    • case: switch语句中的分支。
    • default: switch语句中的默认分支。
    • while: 循环语句。
    • do: 循环语句,与while一起使用。
    • for: 循环语句。
    • break: 跳出循环。
    • continue: 跳过循环中的其余部分。
  3. 访问控制关键字:

    • public: 公共访问权限。
    • private: 私有访问权限。
    • protected: 受保护的访问权限。
    • default (package-private): 包内访问权限。
  4. 类、方法和变量关键字:

    • class: 定义类。
    • extends: 类的继承。
    • implements: 实现接口。
    • interface: 定义接口。
    • new: 创建对象。
    • static: 静态成员。
    • final: 不可修改的变量、方法或类。
    • abstract: 抽象类、抽象方法。
    • void: 无返回值。
    • this: 当前对象的引用。
    • super: 父类的引用。
  5. 异常处理关键字:

    • try: 包含可能引发异常的代码块。
    • catch: 处理异常的代码块。
    • finally: 无论是否发生异常,都会执行的代码块。
    • throw: 手动抛出异常。
    • throws: 在方法声明中指定可能抛出的异常。
  6. 其他关键字:

    • import: 导入包或类。
    • package: 定义包。
    • return: 返回值。
    • true, false: 布尔值。
    • null: 空值。
    • instanceof: 判断对象是否是某个类的实例。

在这里插入图片描述

转义字符

在Java中,转义字符用于表示一些特殊字符,这些字符在普通字符串中可能无法直接表示或者有特殊含义。转义字符以反斜杠 \ 开始,后面跟着一个字符,用来表示相应的特殊含义。以下是Java中一些常用的转义字符:

  1. 换行符:

    • \n: 表示换行符。
  2. 回车符:

    • \r: 表示回车符。
  3. 制表符:

    • \t: 表示制表符。
  4. 退格符:

    • \b: 表示退格符。
  5. 反斜杠自身:

    • \\: 表示一个反斜杠字符。
  6. 单引号自身:

    • \': 表示一个单引号字符。
  7. 双引号自身:

    • \": 表示一个双引号字符。
  8. Unicode 字符:

    • \uXXXX: 表示一个 Unicode 字符,其中 XXXX 是该字符的 Unicode 编码,例如 \u0041 表示大写字母 ‘A’。

在字符串中使用转义字符的示例:

public class EscapeCharacters {public static void main(String[] args) {// 换行符System.out.println("Hello,\nWorld!");// 制表符System.out.println("Name\tAge\tCity");// 反斜杠自身System.out.println("This is a backslash: \\");// 单引号自身System.out.println("She said, \'Hello!\'");// 双引号自身System.out.println("He exclaimed, \"Wow!\"");// Unicode 字符System.out.println("Unicode for A is: \u0041");}
}
Hello,
World!
Name	Age	City
This is a backslash: \
She said, 'Hello!'
He exclaimed, "Wow!"
Unicode for A is: A

在上述示例中,转义字符使得字符串能够包含换行符、制表符等特殊字符,而不会被解释成普通字符。

运算符与优先级

在Java中,运算符用于执行各种操作,如算术运算、逻辑运算、比较运算等。这些运算符有不同的优先级,决定了它们在表达式中的执行顺序。以下是一些常见的运算符及它们的优先级:

  1. 算术运算符:
  • + (加法)
  • - (减法)
  • * (乘法)
  • / (除法)
  • % (取模)
  1. 关系运算符:
  • == (等于)
  • != (不等于)
  • < (小于)
  • > (大于)
  • <= (小于等于)
  • >= (大于等于)
  1. 逻辑运算符:
  • && (逻辑与)
  • || (逻辑或)
  • ! (逻辑非)
  1. 位运算符:
  • & (按位与)
  • | (按位或)
  • ^ (按位异或)
  • ~ (按位取反)
  • << (左移)
  • >> (右移)
  • >>> (无符号右移)

>>(有符号右移)不同,>>> 不考虑符号位,因此在右移时不管符号位是0还是1,都用0填充。

public class Main {public static void main(String[] args) {int value = -8; // 二进制表示为 11111111111111111111111111111000int result = value >>> 1; // 无符号右移一位int result2 = value >> 1; // 右移一位System.out.println("Original value: " + value);System.out.println("Result after >> 1: " + result2);System.out.println("Result after >>> 1: " + result);}
}
Original value: -8
Result after >> 1: -4
Result after >>> 1: 2147483644

请注意,由于 >>> 是无符号右移,因此结果是正数。这与有符号右移 >> 的结果有所不同,后者会用符号位的值填充。

  1. 赋值运算符:
  • = (赋值)
  • += (加法赋值)
  • -= (减法赋值)
  • *= (乘法赋值)
  • /= (除法赋值)
  • %= (取模赋值)
  • &= (按位与赋值)
  • |= (按位或赋值)
  • ^= (按位异或赋值)
  • <<= (左移赋值)
  • >>= (右移赋值)
  • >>>= (无符号右移赋值)
  1. 条件运算符(三元运算符):
  • ? : (条件表达式)

在Java中,? : 是条件运算符,也称为三元运算符。它是一种简洁的表示条件语句的方式,允许在一个表达式中根据条件选择两个不同的值。
语法格式如下:

result = (condition) ? expression1 : expression2; 

其中:

  • condition 是一个布尔表达式,如果为真(true),则选择 expression1,否则选择 expression2
  • expression1 是在条件为真时要返回的值。
  • expression2 是在条件为假时要返回的值。
public class TernaryOperatorExample {public static void main(String[] args) {int number = 10;String result = (number % 2 == 0) ? "Even" : "Odd";System.out.println("The number is " + result);}
}
The number is Even

条件运算符可以用于更简洁地表示简单的条件判断,但在使用时要注意保持代码的可读性,不要滥用。复杂的逻辑判断建议使用传统的 if-else 语句。

  1. instanceof 运算符
  • instanceof (用于测试对象是否为某个类的实例)
  1. 其他运算符:
  • ++ (自增)
  • -- (自减)
  • + (正号,用于表示正数)
  • - (负号,用于表示负数)
  • ~ (按位取反)

运算符优先级:
运算符的优先级决定了表达式中运算符的执行顺序,具有较高优先级的运算符会在具有较低优先级的运算符之前执行。以下是一些常见运算符的优先级(从高到低):

  1. 括号:

    • ( )
  2. 一元运算符:

    • ++, --, +, -, !, ~
  3. 乘性运算符:

    • *, /, %
  4. 加性运算符:

    • +, -
  5. 移位运算符:

    • <<, >>, >>>
  6. 关系运算符:

    • <, <=, >, >=, instanceof
  7. 相等性运算符:

    • ==, !=
  8. 按位与运算符:

    • &
  9. 按位异或运算符:

    • ^
  10. 按位或运算符:

    • |
  11. 逻辑与运算符:

    • &&
  12. 逻辑或运算符:

    • ||
  13. 条件运算符:

    • ? :
  14. 赋值运算符:

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

请注意,具有较高优先级的运算符会在具有较低优先级的运算符之前执行。如果不确定表达式的执行顺序,可以使用括号来明确指定优先级。

分支语当

在Java中,主要有两种类型的分支语句:if语句和switch语句。在Java中,主要有两种类型的分支语句:if语句和switch语句。

1. if 语句

if语句用于根据条件执行不同的代码块。基本的if语句结构如下:

if (条件) {// 如果条件为真,则执行这里的代码
} else {// 如果条件为假,则执行这里的代码
}

例如:

int x = 10;if (x > 5) {System.out.println("x 大于 5");
} else {System.out.println("x 不大于 5");
}

2. switch 语句

switch语句用于根据表达式的值选择执行不同的代码块。它通常用于处理多个可能的情况。基本的switch语句结构如下:

switch (表达式) {case1:// 如果表达式的值等于值1,则执行这里的代码break;case2:// 如果表达式的值等于值2,则执行这里的代码break;// 可以有更多的 case 语句default:// 如果表达式的值不匹配任何一个 case,则执行这里的代码
}

例如:

int day = 3;switch (day) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;// 可以有更多的 case 语句default:System.out.println("其他星期");
}

分支语句的使用原则

在学习Java基础时,编写分支语句时确实应该考虑一些优化和规范的原则。以下是一些建议:

  • 出现概率大的可能性放在前面进行判断

这个原则是为了提高程序的执行效率。如果你有多个条件判断,将出现概率大的情况放在前面可以减少不必要的比较,提高程序执行速度。

  • 尽可能使用确定的值和不确定的值进行对比

这个原则是为了防止出现空指针异常或其他错误。将常量或确定的值放在等号左边,可以避免将null赋给变量的情况。

例如:

// 不好的写法
if (num == null) {// ...
}// 好的写法
if (null == num) {// ...
}

这样写是为了避免在不小心将==写成=时,导致将null赋值给num,从而避免潜在的空指针异常。

循环语句

在Java中,循环语句用于多次执行一段代码。Java提供了多种类型的循环语句,包括forwhile、和do-while。这些循环结构允许你根据条件多次执行相同的代码块。

1. for 循环

for循环是一种常用的循环结构,它通过初始化、条件判断和迭代步骤来控制循环。基本结构如下:

for (初始化; 条件判断; 迭代步骤) {// 循环体
}

例如,输出0到4的数字:

for (int i = 0; i < 5; i++) {System.out.println(i);
}

六种常见的for循环写法

  1. 基本形式
for (int i = 0; i < 5; i++) {// 循环体
}
  1. 省略初始化
int i = 0;
for (; i < 5; i++) {// 循环体
}
  1. 省略迭代步骤
for (int i = 0; i < 5;) {// 循环体i++;
}
  1. 省略初始化和迭代步骤
int i = 0;
for (; i < 5;) {// 循环体i++;
}
  1. 使用多个变量
for (int i = 0, j = 10; i < 5; i++, j--) {// 循环体
}
  1. 无限循环
for (;;) {// 无限循环体// 注意: 需要在循环体内使用 break 来跳出循环,否则会一直执行下去break; // 示例中的跳出条件
}

2. while 循环

while循环在执行循环体之前先检查条件是否为真,只有在条件为真时才执行循环体。基本结构如下:

while (条件判断) {// 循环体
}

例如,输出0到4的数字:

int i = 0;
while (i < 5) {System.out.println(i);i++;
}

3. do-while 循环

do-while循环先执行一次循环体,然后检查条件是否为真,如果为真,则继续执行。基本结构如下:

do {// 循环体
} while (条件判断);

例如,输出0到4的数字:

int i = 0;
do {System.out.println(i);i++;
} while (i < 5);

这三种循环结构在不同的情况下有各自的适用性,选择使用哪一种循环取决于问题的性质和需求。

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

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

相关文章

uniapp中组件库的丰富NumberBox 步进器的用法

目录 基本使用 #步长设置 #限制输入范围 #限制只能输入整数 #禁用 #固定小数位数 #异步变更 #自定义颜色和大小 #自定义 slot API #Props #Events #Slots 基本使用 通过v-model绑定value初始值&#xff0c;此值是双向绑定的&#xff0c;无需在回调中将返回的数值重…

副业踩坑之路(1)

写下这段经历让别人少踩坑吧&#xff0c;随便写的&#xff0c;不好轻喷哈&#xff0c;努力听取广大网友的建议~ 起因 几个月前&#xff0c;我妈妈手机套餐是移动39元的&#xff0c;流量好像才5G。家里开的小店铺里面没有WIFI&#xff0c;生意需要&#xff0c;经常要逛淘宝拼多…

C++知识点总结(11):质因子分解

一、质数和合数 质数 如果一个数除了 1 1 1 和本身&#xff0c;没有其他的因数&#xff0c;就是质数。 合数 如果一个数除了 1 1 1 和本身&#xff0c;还有其他的因数&#xff0c;就是合数。 小贴士 1 1 1 是一个例外&#xff0c;既不是质数&#xff0c;也不是合数。 二、求…

linux安装python

文章目录 前言一、下载安装包二、安装1.安装依赖2.解压3.安装4.软链接5.验证 总结 前言 本篇文章介绍linux环境下安装python。 一、下载安装包 下载地址&#xff1a;官方网站 我们以最新的标准版为例 二、安装 1.安装依赖 yum -y install openssl-devel ncurses-devel li…

3.pytorch cifar10

数据集 CIFAR10 是由 Hinton 的学生 Alex Krizhevsky、Ilya Sutskever 收集的一个用于普适物体识别的计算机视觉数据集&#xff0c;它包含 60000 张 32 X 32 的 RGB 彩色图片&#xff0c;总共 10 个分类。 这些类别分别是飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、船和卡车。其…

服务号和订阅号哪个好

服务号和订阅号有什么区别&#xff1f;服务号转为订阅号有哪些作用&#xff1f;在推送频率上来看&#xff0c;服务号每月能推送四条消息&#xff0c;而订阅号可以每天&#xff08;24小时&#xff09;推送一条消息。如果企业开通公众号的目的是提供服务&#xff0c;例如售前资讯…

动态规划 | 鸡蛋问题 | 元旦假期来点“蛋”题

文章目录 鸡蛋掉落 - 两枚鸡蛋题目描述动态规划解法问题分析程序代码 鸡蛋掉落题目描述问题分析程序代码复杂度分析 鸡蛋掉落 - 两枚鸡蛋 题目描述 原题链接 给你 2 枚相同 的鸡蛋&#xff0c;和一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f &#xff0c;满足 …

我的学习C#回炉学习日志——Lua热更新06_模块

模块 个人理解&#xff1a;lua的包比起C#&#xff0c;基本上就是一个table记录所有信息&#xff0c;包括变量、常量等 module {} module.constant "一个常量" function module.func1()io.write("一个共有函数\n") endlocal function func2()-- bodypr…

C语言注释的使用与理解

什么是注释&#xff1f; 在编程中&#xff0c;注释&#xff08;Comment&#xff09;是一种非执行文本&#xff0c;它用于为代码提供解释、说明和文档。注释的内容不参与程序的实际编译和运行过程&#xff0c;其主要目的是提高代码的可读性和可维护性&#xff0c;方便开发者以及…

MySQL:排序和分组

1、排序 order by 用于对结果集按照一个列或者多个列进行排序。默认按照升序对记录进行排序&#xff0c;如果需要按照降序对记录进行排序&#xff0c;可以使用 desc 关键字。 order by 对多列排序的时候&#xff0c;先排序的列放前面&#xff0c;后排序的列放后面。并且&…

Python字典类型key找value或者value找key方法汇总

字典中&#xff0c;如何通过唯一的value获取key 如果传入的值在字典的值中不存在&#xff0c;可以返回一个特定的默认值或者抛出一个异常来表示该情况。以下是两种处理方式的示例&#xff1a; 返回默认值&#xff1a; def get_key_by_value(dictionary, value, defaultNone)…

JavaScript:函数隐含对象arguments/剩余参数. . .c/解构赋值

除了this&#xff0c;在函数内部还存在着一个隐含的参数arguments arguments 是一个类数组对象&#xff08;伪数组&#xff09; 调用函数时传递的所有实参&#xff0c;都被存储在arguments中 arguments[0] 表示的是第一个实参 arguments[1] 表示的是第二个实参 以此类推..…

2022年全球运维大会(GOPS深圳站)-核心PPT资料下载

一、峰会简介 GOPS 主要面向运维行业的中高端技术人员&#xff0c;包括运维、开发、测试、架构师等群体。目的在于帮助IT技术从业者系统学习了解相关知识体系&#xff0c;让创新技术推动社会进步。您将会看到国内外知名企业的相关技术案例&#xff0c;也能与国内顶尖的技术专家…

【数据结构】链式家族的成员——循环链表与静态链表

循环链表与静态链表 导言一、循环链表1.1 循环单链表1.2 循环双链表 二、静态链表2.1 静态链表的创建2.2 静态链表的初始化2.3 小结 结语 导言 大家好&#xff01;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 经过前面的介绍&#xff0c;相信大家对链式家族的…

软件测试/测试开发丨Mac Appium环境搭建

Mac 上 Appium 环境搭建 安装 nodejs 与 npm 安装方式与 windows 类似 &#xff0c;官网下载对应的 mac 版本的安装包&#xff0c;双击即可安装&#xff0c;无须配置环境变量。官方下载地址&#xff1a;https://nodejs.org/en/download/ 安装 appium Appium 分为两个版本&a…

【Transformer】深入理解Transformer模型1——初步认识了解

前言 Transformer模型出自论文&#xff1a;《Attention is All You Need》 2017年 近年来&#xff0c;在自然语言处理领域和图像处理领域&#xff0c;Transformer模型都受到了极为广泛的关注&#xff0c;很多模型中都用到了Transformer或者是Transformer模型的变体&#xff0…

ElasticSearch--基本操作

ElasticSearch 完成ES安装 http://101.42.93.208:5601/app/dev_tools#/console 库的操作 创建索引库 请求方式&#xff1a;PUT 请求路径&#xff1a;/索引库名&#xff0c;可以自定义 请求参数&#xff1a;mapping映射 PUT /test {"mappings": {"propertie…

计算机硬件 4.3显示器

第三节 显示器 一、基本概念 1.定义&#xff1a;将电信号转换为可以直接看到的图像的最基本输出设备。 2.分类&#xff1a;按显示色彩分&#xff1a;单色显示器、彩色显示器。 按显示原理分&#xff1a;CRT显示器、LCD显示器、LED显示器、OLED显示器。 3.原理结构&#xff…

【Oracle】 Oracle Sequence 性能优化

Sequence是很简单的&#xff0c;如果最大程度利用默认值的话&#xff0c;我们只需要定义sequence对象的名字即可。在序列Sequence对象的定义中&#xff0c;Cache是一个可选择的参数。默认的Sequence对象是有cache选项的&#xff0c;默认取值为20。这个默认值对于大多数情况下都…

云原生|kubernetes|kubernetes资源备份和集群迁移神器velero的部署和使用

前言&#xff1a; kubernetes集群需要灾备吗&#xff1f;kubernetes需要迁移吗&#xff1f; 答案肯定是需要的 那么&#xff0c;如何做kubernetes灾备和迁移呢&#xff1f;当然了&#xff0c;有很多的方法&#xff0c;例如&#xff0c;自己编写shell脚本&#xff0c;或者使用…