当前位置: 首页 > news >正文

【Java】数据类型变量

【Java】数据类型&变量

文章目录

  • 【Java】数据类型&变量
    • 1、字面常量
    • 2、数据类型
    • 3、变量
      • 3.1 整型变量
        • 3.1.1 整型变量
        • 3.1.2 长短整型变量
        • 3.1.3 字节型变量
      • 3.2 浮点型变量
        • 3.2.1 双精度浮点型
        • 3.2.2 单精度浮点型
      • 3.3 字符型变量
      • 3.4 布尔型变量
      • 3.5 类型转换
        • 3.5.1 自动类型转换
        • 3.5.2 强制类型转换
      • 3.6 类型提升
    • 4、字符串类型
      • 字符串转整型:
      • 整型转字符串:

1、字面常量

在Java中,字面常量(Literal Constants)是指直接在代码中表示特定值的固定值或数据。这些值是在代码中直接写出来的,而不是通过计算或变量赋值获得的。Java支持多种类型的字面常量,包括以下几种常见的类型:

  1. 整数字面常量:表示整数值,可以用十进制、八进制、十六进制表示。例如:420750x2A

  2. 浮点数字面常量:表示浮点数值,可以使用小数点表示,也可以使用指数表示。例如:3.142.0e-5

  3. 字符字面常量:表示单个字符,使用单引号括起来。例如:'A''1''%'

  4. 字符串字面常量:表示字符串值,使用双引号括起来。例如:"Hello, World!""Java Programming"

  5. 布尔字面常量:表示布尔值,只有两个取值:truefalse

  6. null字面常量:表示空引用,用关键字null表示。

这些字面常量在编写Java代码时非常常见,它们直接表示了对应的值,使代码更加清晰易懂。例如,以下是一些使用字面常量的示例:

int num = 42;
double pi = 3.14;
char initial = 'J';
String greeting = "Hello, World!";
boolean isValid = true;
Object obj = null;

在这些示例中,都直接使用了字面常量来初始化变量的值。

2、数据类型

基本数据类型(Primitive Data Types)

  • 整数类型

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

    • float:32位单精度浮点数。
    • double:64位双精度浮点数。
  • 字符类型

    • char:16位Unicode字符。
  • 布尔类型

    • boolean:表示 true 或 false 值。

3、变量

3.1 整型变量

3.1.1 整型变量

  1. int大小不变int 数据类型在不同的系统下都是占用 4 个字节,即 32 位,无论是 32 位系统还是 64 位系统。

  2. 推荐使用方式一:通常情况下,推荐在定义变量时就给出合适的初始值。这有助于避免使用未初始化的变量,从而减少可能的错误。

  3. 初始值不能超过int范围:当给变量设置初始值时,确保值不超过 int 数据类型的表示范围,以避免溢出。

  4. 必须赋初值:Java要求在使用变量之前必须对其赋初值。这可以帮助避免使用未初始化的变量,从而增强程序的健壮性。

  5. int的包装类型为Integer:int的包装类型是 `Integer。包装类型用于将基本数据类型转换为对象,使其能够在面向对象的上下文中使用。例如,可以在集合(如列表或映射)中存储 Integer对象。

3.1.2 长短整型变量

长短整型变量(shortlong)是 Java 中的两种整型数据类型,分别用于存储不同范围的整数值。在使用这些变量时,有一些注意事项需要考虑:

short 类型注意事项:

  1. 范围限制short 类型只有 16 位,范围为 -32,768 到 32,767。因此,它适合于存储较小的整数值。如果值超出了这个范围,会导致溢出。

  2. 类型提升:在进行算术操作时,short 类型的操作数会被自动提升为 int,然后执行计算。这可以避免溢出和精度丢失。

  3. 强制类型转换:如果需要将 int 类型的值赋给 short 类型的变量,需要进行显式的强制类型转换。这可能会导致数据丢失,因为超出范围的值会被截断。

long 类型注意事项:

  1. 范围和精度long 类型有 64 位,因此适用于存储大范围的整数值。它可以表示更大的整数,但注意不要超出其范围。

  2. 字面常量后缀:在使用较大的 long 字面常量时,建议在数字后面加上 Ll 后缀,以指示这是 long 类型的值。

  3. 类型提升:与 short 类型一样,long 类型的操作数在进行算术操作时也会被自动提升为 int 或更高类型。

  4. 精度问题:当进行除法操作时,long 类型的精度可能会受到影响,可能会得到意外的结果。在需要保持精度的情况下,可以使用 double 或其他浮点数类型。

在使用 shortlong 类型时,务必注意其范围、精度和数据转换的问题。合理选择数据类型,避免溢出和精度丢失,以确保程序的正确性和健壮性。

3.1.3 字节型变量

字节型变量(byte)是 Java 中的一种整型数据类型,用于存储8位有符号整数值。由于它的范围相对较小,通常在一些需要节省内存的情况下使用。以下是使用字节型变量时的注意事项:

  1. 范围限制byte 类型有 8 位,范围为 -128 到 127。它适用于存储相对较小的整数值,例如像素值、文件处理等。

  2. 字面常量后缀:在使用 byte 字面常量时,建议在数字后面加上 Bb 后缀,以指示这是 byte 类型的值。

  3. 类型提升:与其他整型数据类型一样,在进行算术操作时,byte 类型的操作数会被自动提升为 int 类型,然后执行计算。这可以避免溢出和精度丢失。

  4. 强制类型转换:如果需要将 int 类型的值赋给 byte 类型的变量,需要进行显式的强制类型转换。这可能会导致数据丢失,因为超出范围的值会被截断。

  5. 应用场景:由于 byte 变量范围较小,通常用于一些需要节省内存的场景,如图像处理、文件操作等。但要注意不要在需要较大范围的整数计算中使用它。

以下是一个简单的示例,演示了如何使用 byte 类型变量:

public class ByteVariableExample {public static void main(String[] args) {byte pixelValue = 100;byte fileSize;fileSize = 50;// 使用方式二定义后,在使用前如果没有赋值,则编译期间会报错// byte imageHeight; // 此处应该赋初值,否则会报错// System.out.println(imageHeight);// imageHeight = 200;System.out.println("Pixel Value: " + pixelValue);System.out.println("File Size: " + fileSize);// byte型变量所能表示的范围:System.out.println("Minimum Byte Value: " + Byte.MIN_VALUE);System.out.println("Maximum Byte Value: " + Byte.MAX_VALUE);}
}

在这个示例中,pixelValuefileSize 都是 byte 类型变量,用于存储相对较小的整数值。注意在使用未初始化的 byte 变量时会导致编译错误,因此需要确保变量在使用前已经赋值。

3.2 浮点型变量

3.2.1 双精度浮点型

双精度浮点型(double)是 Java 中的一种浮点数数据类型,用于存储双精度浮点数值。double 类型使用 64 位内存空间,提供了更大的范围和更高的精度,适用于存储需要更大位数和小数点精度的浮点数值。以下是关于 double 类型的一些注意事项:

  1. 范围和精度double 类型可以表示更大范围和更高精度的浮点数值,适用于科学计算、工程计算以及需要高精度的金融计算等。

  2. 字面常量后缀:在使用 double 字面常量时,可以不加后缀,也可以加上 Dd 后缀,以明确指示这是 double 类型的值。例如:3.143.14D

  3. 类型提升:与其他浮点数数据类型一样,double 类型的操作数在进行算术操作时会自动提升为 double,以避免精度丢失。

  4. 科学计数法double 类型的值可以使用科学计数法表示,例如:1.23e-4 表示 0.000123。

  5. 默认小数点类型:在进行除法或其他浮点数运算时,如果参与运算的操作数中有 double 类型,结果会自动被推断为 double 类型。

以下是一个简单的示例,展示了如何使用 double 类型变量进行浮点数运算:

public class DoubleVariableExample {public static void main(String[] args) {double pi = 3.141592653589793;double radius = 5.0;double circumference = 2 * pi * radius;double area = pi * radius * radius;System.out.println("Circumference: " + circumference);System.out.println("Area: " + area);}
}

在这个示例中,piradius 都是 double 类型变量,用于存储双精度浮点数值。然后,进行了圆周和面积的计算,并输出结果。由于 double 类型提供了高精度,它适用于涉及小数点的计算。

3.2.2 单精度浮点型

单精度浮点型(float)是 Java 中的一种浮点数数据类型,用于存储单精度浮点数值。float 类型使用 32 位内存空间,提供了适度的范围和精度,适用于存储需要小数点精度的浮点数值。以下是关于 float 类型的一些要点:

  1. 范围和精度float 类型可以表示一定范围的浮点数值,通常用于存储需要适度位数和小数点精度的浮点数。范围和精度相对于 double 类型较小。

  2. 字面常量后缀:在使用 float 字面常量时,需要加上 Ff 后缀,以明确指示这是 float 类型的值。例如:3.14F

  3. 类型提升:与其他浮点数数据类型一样,float 类型的操作数在进行算术操作时会自动提升为 double,以避免精度丢失。

  4. 科学计数法float 类型的值同样可以使用科学计数法表示,例如:1.23e-4 表示 0.000123。

  5. 默认小数点类型:在进行除法或其他浮点数运算时,如果参与运算的操作数中有 float 类型,结果会自动被推断为 double 类型。

以下是一个简单的示例,展示了如何使用 float 类型变量进行浮点数运算:

public class FloatVariableExample {public static void main(String[] args) {float temperature = 25.5F;float gravity = 9.81F;float force = gravity * 5.0F;float area = 3.14F * 2.0F * 2.0F;System.out.println("Temperature: " + temperature);System.out.println("Force: " + force);System.out.println("Area: " + area);}
}

在这个示例中,temperaturegravity 都是 float 类型变量,用于存储单精度浮点数值。然后,进行了力和面积的计算,并输出结果。由于 float 类型提供了适度的精度,它适用于需要小数点位数的计算。

3.3 字符型变量

字符型变量(char)是 Java 中的一种基本数据类型,用于存储单个字符。char 类型可以表示 Unicode 字符集中的字符,包括字母、数字、标点符号和特殊字符。以下是关于 char 类型的一些要点:

  1. 表示字符char 类型用于表示单个字符,可以是字母、数字、符号或特殊字符。字符被放置在单引号 ' 中,例如:'A''1''@'

  2. Unicode 支持:Java 的 char 类型支持 Unicode 编码,因此可以表示多种语言的字符。例如,'中''a''€' 都是合法的 char 值。

  3. 转义序列:有些特殊字符需要通过转义序列表示,例如:'\n' 表示换行,'\t' 表示制表符等。

  4. 整数表示:尽管 char 是字符类型,但它在内部被表示为整数(16 位),因此可以进行数值运算。例如,'A' + 1 的结果是 'B'

以下是一个示例,展示了如何使用 char 类型变量来存储字符:

public class CharVariableExample {public static void main(String[] args) {char letter = 'A';char digit = '7';char symbol = '$';System.out.println("Letter: " + letter);System.out.println("Digit: " + digit);System.out.println("Symbol: " + symbol);// 转义序列示例char newline = '\n';char tab = '\t';System.out.println("This is a" + tab + "tab.");System.out.println("This is a" + newline + "new line.");}
}

在这个示例中,letterdigitsymbol 都是 char 类型变量,用于存储字符。还展示了如何使用转义序列来表示特殊字符,如制表符和换行符。

需要注意的是,char 变量只能存储一个字符,而不是字符串。如果需要存储多个字符,应该使用字符串类型(String)。

3.4 布尔型变量

布尔型变量(boolean)是 Java 中的一种基本数据类型,用于存储布尔值,即 truefalseboolean 类型用于表示条件判断、逻辑运算的结果等情况,它在控制流程和条件判断中非常常用。以下是关于 boolean 类型的一些要点:

  1. 取值范围boolean 类型只能存储两个值:truefalse,用来表示真和假。

  2. 逻辑运算boolean 类型通常用于逻辑运算,如与(&&)、或(||)、非(!)等。逻辑运算的结果也是 boolean 类型。

  3. 条件语句boolean 类型常用于条件语句,例如 if 语句和循环中,以判断某个条件是否满足。

  4. 默认值boolean 类型的默认值是 false

以下是一个示例,演示了如何使用 boolean 类型变量进行条件判断和逻辑运算:

public class BooleanVariableExample {public static void main(String[] args) {boolean isRaining = true;boolean isSunny = false;// 使用boolean变量进行条件判断if (isRaining) {System.out.println("It's raining outside. Take an umbrella!");} else if (isSunny) {System.out.println("It's sunny outside. Enjoy the weather!");} else {System.out.println("It's neither raining nor sunny. Check the weather forecast.");}// 使用逻辑运算符boolean isWeekend = true;boolean hasHomework = false;if (isWeekend && !hasHomework) {System.out.println("It's the weekend and you don't have homework. Relax!");} else {System.out.println("You have things to do. Keep working.");}}
}

在这个示例中,isRainingisSunnyisWeekendhasHomework 都是 boolean 类型变量,用于表示不同的布尔值。示例中展示了如何使用 boolean 变量进行条件判断和逻辑运算。

3.5 类型转换

3.5.1 自动类型转换

在 Java 中,有一种自动类型转换(或隐式类型转换)的机制,允许较小范围的数据类型自动转换为较大范围的数据类型,以避免数据丢失。这种类型转换是由编译器在特定情况下自动执行的。以下是一些常见的自动类型转换情况:

  1. 整数类型自动转换:在进行整数类型的运算时,较小范围的整数类型(如 byteshort)会自动提升为 int 类型,以避免溢出。

    byte a = 10;
    short b = 20;
    int result = a + b; // a 和 b 在运算前被自动转换为 int
    
  2. 浮点数类型自动转换:在进行浮点数类型的运算时,较小精度的浮点数类型(如 float)会自动提升为 double 类型。

    float x = 3.14F;
    double y = 2.71;
    double sum = x + y; // x 在运算前被自动转换为 double
    
  3. 混合类型运算:当在表达式中混合使用不同类型的操作数时,较小类型的操作数会自动转换为较大类型。

    int num = 10;
    double decimal = 2.5;
    double result = num + decimal; // num 在运算前被自动转换为 double
    
  4. 布尔类型转换:布尔类型不会自动转换为其他数据类型,也不会从其他数据类型自动转换为布尔类型。但是,在条件判断和逻辑运算中,boolean 类型会自动转换为适用的数据类型。

    boolean flag = true;
    int value = 42;
    if (flag) {// flag 会自动转换为适用于条件判断的数据类型
    }
    

需要注意的是,虽然自动类型转换可以避免一些常见的数据丢失问题,但在进行类型转换时仍需谨慎。当进行类型转换时,如果目标类型的范围或精度不足以容纳源类型的值,可能会导致不正确的结果。在需要进行精确计算或数据处理时,应该使用适当的数据类型和显式的类型转换。

3.5.2 强制类型转换

强制类型转换(或显式类型转换)是在编程中将一个数据类型转换为另一个数据类型的过程。在某些情况下,自动类型转换可能不足以满足需求,因此需要使用强制类型转换来实现特定的转换需求。强制类型转换会在编译期间或运行时明确执行,以确保数据的正确性。以下是关于强制类型转换的一些要点:

  1. 语法:强制类型转换使用圆括号将要转换的值括起来,并在括号内指定目标数据类型。

    // 语法:目标数据类型 变量名 = (目标数据类型) 原始值;
    int num1 = (int) 3.14; // 将浮点数转换为整数,小数部分被截断
    
  2. 数据范围缩小:通常情况下,强制类型转换用于将较大范围的数据类型转换为较小范围的数据类型。在这种情况下,可能会导致数据丢失。

    double largeValue = 12345.67;
    int smallValue = (int) largeValue; // 将 double 转换为 int,小数部分被截断
    
  3. 数据类型扩展:在一些情况下,可以将较小范围的数据类型转换为较大范围的数据类型,以便在某些运算中获得更高的精度。

    int intValue = 42;
    double doubleValue = (double) intValue; // 将 int 转换为 double,以获得更高的精度
    
  4. 注意溢出:在将一个大范围的整数类型转换为一个小范围的整数类型时,可能会发生溢出。因此,要确保目标数据类型足够大以容纳源数据类型的值。

    long largeNumber = 12345678901234L;
    int smallNumber = (int) largeNumber; // 可能会导致溢出,需要谨慎
    
  5. 特殊情况:某些类型之间的转换可能不是直接的,可能需要多次转换,或者需要注意数据精度和范围。

在使用强制类型转换时,需要特别注意数据的范围、精度以及可能的数据丢失。不正确的类型转换可能导致程序运行时的错误或不符合预期的结果。因此,在进行强制类型转换时应该谨慎,并确保了解源数据类型和目标数据类型的特性。

3.6 类型提升

类型提升(或自动类型提升)是 Java 中一种在表达式中自动将较小的数据类型转换为较大的数据类型的机制。这种提升发生在进行算术操作或赋值等操作时,以确保不发生数据丢失或溢出。以下是关于类型提升的一些要点:

  1. 整数类型提升:在进行整数类型的算术运算时,较小范围的整数类型(如 byteshortchar)会被自动提升为 int 类型,然后进行运算。

    byte a = 10;
    short b = 20;
    int result = a + b; // a 和 b 在运算前被自动提升为 int
    
  2. 浮点数类型提升:在进行浮点数类型的算术运算时,较小精度的浮点数类型(如 float)会被自动提升为 double 类型,然后进行运算。

    float x = 3.14F;
    double y = 2.71;
    double sum = x + y; // x 在运算前被自动提升为 double
    
  3. 混合类型运算:当在表达式中混合使用不同类型的操作数时,较小类型的操作数会被自动提升为较大类型。

    int num = 10;
    double decimal = 2.5;
    double result = num + decimal; // num 在运算前被自动提升为 double
    
  4. 避免溢出和精度丢失:类型提升有助于避免在运算中发生溢出和精度丢失,因为运算会在更大范围或更高精度的数据类型中进行。

  5. 逻辑运算和条件判断:在逻辑运算和条件判断中,boolean 类型会被自动提升为适用的数据类型。

    boolean flag = true;
    int value = 42;
    if (flag) {// flag 会自动提升为适用于条件判断的数据类型
    }
    

需要注意的是,类型提升是为了确保运算的准确性和合理性,但在某些情况下可能会导致意外的结果。在进行类型提升时,应该理解不同数据类型的范围和精度,以便正确处理运算结果。如果需要进行精确的数值计算,应该使用适当的数据类型和显式的类型转换。

4、字符串类型

在 Java 中,字符串和整型数字之间的转换涉及将字符串表示的数字转换为整型,或者将整型转换为字符串。以下是两种转换的示例:

字符串转整型:

使用 Integer.parseInt() 方法可以将表示整数的字符串转换为整型。

public class StringToIntExample {public static void main(String[] args) {String strNumber = "12345";int number = Integer.parseInt(strNumber);System.out.println("Parsed Number: " + number);}
}

在上面的示例中,将字符串 "12345" 转换为整型。

如果字符串不表示一个有效的整数,例如 "abc",则会引发 NumberFormatException 异常。为了避免异常,应该确保字符串可以被正确解析为整数。

整型转字符串:

使用 String.valueOf() 方法或整型的字符串连接方式可以将整型数字转换为字符串。

public class IntToStringExample {public static void main(String[] args) {int number = 9876;// 使用 String.valueOf()String strNumber1 = String.valueOf(number);// 使用字符串连接方式String strNumber2 = number + "";System.out.println("Converted String (Method 1): " + strNumber1);System.out.println("Converted String (Method 2): " + strNumber2);}
}

在上面的示例中,将整数 9876 转换为字符串。

这些转换方法可以在处理字符串和整型之间的相互转换时非常有用。但需要注意的是,在进行转换时应该确保数据格式正确,以避免异常或错误。

相关文章:

【Java】数据类型变量

【Java】数据类型&变量 文章目录 【Java】数据类型&变量1、字面常量2、数据类型3、变量3.1 整型变量3.1.1 整型变量3.1.2 长短整型变量3.1.3 字节型变量 3.2 浮点型变量3.2.1 双精度浮点型3.2.2 单精度浮点型 3.3 字符型变量3.4 布尔型变量3.5 类型转换3.5.1 自动类型转…...

护目镜佩戴检测识别算法

护目镜佩戴检测识别算法通过opencvpython网络深度学习模型,护目镜佩戴检测识别算法实时监测工人的护目镜佩戴情况,发现未佩戴或错误佩戴的情况,及时提醒调整。与C / C等语言相比,Python速度较慢。也就是说,Python可以使…...

NOIOLPJ2022B. 数学游戏 分析

数学游戏 题目描述 Kri 喜欢玩数字游戏。 一天,他在草稿纸上写下了 ttt 对正整数 (x,y)(x,y)(x,y),并对于每一对正整数计算出了 zxygcd⁡(x,y)z x \times y \times \gcd(x,y)zxygcd(x,y)。 可是调皮的 Zay 找到了 Kri 的草稿纸,并把每一组的…...

android studio gradle build running慢 卡住不动 失败 原因与解决方式

快速导航 分析原因解决办法 分析原因 主要原因是 gradle 构建时无法从网络获取需要的包或库。 解决办法 将国外库替换为阿里云镜像库。 例如 google 对应的库是 maven { url ‘https://maven.aliyun.com/repository/google’ }...

如何保障Facebook账号登录稳定

当谈到保障Facebook账号的稳定性时,我们不得不提到那些令人头疼的情况——Facebook账号被封。尽管我们已经踏入数字化的未来,但是被封号似乎是一个时常困扰着社交媒体用户的问题。那么,让我们来看看一些常见的Facebook账号被封的原因&#xf…...

当前目录下的excel文件的两列内容的相似度比较

# -- coding: utf-8 --** from sklearn.feature_extraction.text import CountVectorizer from sklearn.metrics.pairwise import cosine_similarity import numpy as np import pandas as pd import os # 获取当前目录 current_dir os.getcwd() # 获取当前目录下所有xlsx文件…...

Cookie for Mac:隐私保护工具保护您的在线隐私

随着互联网的发展,我们每天都会浏览各种网站,享受在线购物、社交娱乐和学习资料等各种便利。然而,您是否曾经遇到过需要频繁输入用户名和密码的情况?或者不方便访问您常用的网站?如果是这样,那么Cookie for…...

Huggingface训练Transformer

在之前的博客中,我采用SFT(监督优化训练)的方法训练一个GPT2的模型,使得这个模型可以根据提示语进行回答。具体可见博客召唤神龙打造自己的ChatGPT_gzroy的博客-CSDN博客 Huggingface提供了一个TRL的扩展库,可以对tra…...

IA-YOLO项目中DIP模块的初级解读

IA-YOLO项目源自论文Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions,其提出端到端方式联合学习CNN-PP和YOLOv3,这确保了CNN-PP可以学习适当的DIP,以弱监督的方式增强图像检测。IA-YOLO方法可以自适应地处理正常和不…...

MathType7.4mac最新版本数学公式编辑器安装教程

MathType7.4中文版是一款功能强大且易于使用的公式编辑器。该软件可与word软件配合使用,有效提高了教学人员的工作效率,避免了一些数学符号和公式无法在word中输入的麻烦。新版MathType7.4启用了全新的LOGO,带来了更多对数学符号和公式的支持…...

为Claude的分析内容做准备:提取PDF页面内容的简易应用程序

由于Claude虽然可以分析整个文件,但是对文件的大小以及字数是有限制的,为了将pdf文件分批传入Claude人工智能分析和总结文章内容,才有了这篇博客: 在本篇博客中,我们将介绍一个基于 wxPython 和 PyMuPDF 库编写的简易的…...

js中作用域的理解?

1.作用域 作用域,即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合 换句话说,作用域决定了代码区块中变量和其他资源的可见性 举个例子 function myFunction() {let inVariable "函数内部变量"; } myFunction();//要先执行这…...

机器学习基础之《分类算法(4)—案例:预测facebook签到位置》

一、背景 1、说明 2、数据集 row_id:签到行为的编码 x y:坐标系,人所在的位置 accuracy:定位的准确率 time:时间戳 place_id:预测用户将要签到的位置 3、数据集下载 https://www.kaggle.com/navoshta/gr…...

【Java】反射 之 调用方法

调用方法 我们已经能通过Class实例获取所有Field对象,同样的,可以通过Class实例获取所有Method信息。Class类提供了以下几个方法来获取Method: Method getMethod(name, Class...):获取某个public的Method(包括父类&a…...

Java——单例设计模式

什么是设计模式? 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们自己再思考和摸索。就像是经典的棋谱,不同的棋局,我们用不同的棋谱、“套路”。 经典的设计模式共有23种。…...

Java实现excel表数据的批量存储(结合easyexcel插件)

场景:加哥最近在做项目时,苦于系统自身并未提供数据批量导入的功能还不能自行添加上该功能,且自身不想手动一条一条将数据录入系统。随后,自己使用JDBC连接数据库、使用EasyExcel插件读取表格并将数据按照业务逻辑批量插入数据库完…...

Config:客户端连接服务器访问远程

springcloud-config: springcloud-config push pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocatio…...

【KMP算法-代码随想录】

目录 1.什么是KMP2.什么是next数组3.什么是前缀表&#xff08;1&#xff09;前后缀含义&#xff08;2&#xff09;最长公共前后缀&#xff08;3&#xff09;前缀表的必要性 4.计算前缀表5.前缀表与next数组&#xff08;1&#xff09;使用next数组来匹配 6.构造next数组&#xf…...

【手写promise——基本功能、链式调用、promise.all、promise.race】

文章目录 前言一、前置知识二、实现基本功能二、实现链式调用三、实现Promise.all四、实现Promise.race总结 前言 关于动机&#xff0c;无论是在工作还是面试中&#xff0c;都会遇到Promise的相关使用和原理&#xff0c;手写Promise也有助于学习设计模式以及代码设计。 本文主…...

计算机网络-笔记-第二章-物理层

目录 二、第二章——物理层 1、物理层的基本概念 2、物理层下面的传输媒体 &#xff08;1&#xff09;光纤、同轴电缆、双绞线、电力线【导引型】 &#xff08;2&#xff09;无线电波、微波、红外线、可见光【非导引型】 &#xff08;3&#xff09;无线电【频谱的使用】 …...

前端开发中的单伪标签清除和双伪标签清除

引言 在前端开发中&#xff0c;我们经常会遇到一些样式上的问题&#xff0c;其中之一就是伪元素造成的布局问题。为了解决这个问题&#xff0c;我们可以使用伪标签清除技术。本篇博客将介绍单伪标签清除和双伪标签清除的概念、用法和示例代码&#xff0c;并详细解释它们的原理…...

云计算中的数据安全与隐私保护策略

文章目录 1. 云计算中的数据安全挑战1.1 数据泄露和数据风险1.2 多租户环境下的隔离问题 2. 隐私保护策略2.1 数据加密2.2 访问控制和身份验证 3. 应对方法与技术3.1 零知识证明&#xff08;Zero-Knowledge Proofs&#xff09;3.2 同态加密&#xff08;Homomorphic Encryption&…...

MacOS软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 MacOS是一种由苹果公司开发的操作系统&#xff0c;专门用于苹果公司的计算机硬件。它被广泛用于创意和专业应用程序&#xff0c;如图像设计、音频和视频编辑等。以下是关于MacOS的详细介绍。 1、MacOS的历史和演变 MacOS最初于…...

【linux进程概念】

目录&#xff1a; 冯诺依曼体系结构操作系统进程 基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程查看进程 fork()函数 冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺…...

直击成都国际车展:远航汽车多款车型登陆车展,打造完美驾乘体验

随着市场渗透率日益高涨&#xff0c;新能源汽车成为今年成都国际车展的关注焦点。在本届车展上&#xff0c;新能源品牌占比再创新高&#xff0c;覆盖两个展馆&#xff0c;印证了当下新能源汽车市场的火爆。作为大运集团重磅打造的高端品牌&#xff0c;远航汽车深度洞察高端智能…...

android nv21 转 yuv420sp

上面两个函数的目标都是将NV21格式的数据转换为YUV420P格式&#xff0c;但是它们在处理U和V分量的方式上有所不同。 在第一个函数NV21toYUV420P_1中&#xff0c;U和V分量的处理方式是这样的&#xff1a;对于U分量&#xff0c;它从NV21数据的Y分量之后的每个奇数位置取数据&…...

使用Nacos与Spring Boot实现配置管理

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

初识【类和对象】

目录 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 5.类的作用域 6.类的实例化 7.类的对象大小的计算 8.类成员函数的this指针 1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的…...

软考高级系统架构设计师系列论文八十六:论企业应用集成

软考高级系统架构设计师系列论文八十六:论企业应用集成 一、企业应用集成相关知识点二、摘要三、正文四、总结一、企业应用集成相关知识点 软考高级系统架构设计师系列之:企业集成平台技术的应用和架构设计二、摘要 2022年10月,我参加了***车站综合信息平台项目的开发,承…...

HarmonyOS ArkUI 属性动画入门详解

HarmonyOS ArkUI 属性动画入门详解 前言属性动画是什么&#xff1f;我们借助官方的话来说&#xff0c;我们自己简单归纳下 参数解释举个例子旋转动画 位移动画组合动画总结 前言 鸿蒙OS最近吹的很凶&#xff0c;赶紧卷一下。学习过程中发现很多人吐槽官方属性动画这一章比较敷…...