Java 数据类型详解与类型转换技巧


Java 数据类型详解

Java 是一种强类型语言,这意味着每个变量和表达式的类型在编译时就确定了。Java 提供了多种数据类型,包括基本数据类型和引用数据类型。

1. 基本数据类型

基本数据类型是 Java 中最简单的类型,不需要对象。它们包括:

  • 整型

    • byte:8 位,范围从 -128 到 127。
      byte b = 100;
      
    • short:16 位,范围从 -32,768 到 32,767。
      short s = 10000;
      
    • int:32 位,范围从 -2^31 到 2^31-1。
      int i = 100000;
      
    • long:64 位,范围从 -2^63 到 2^63-1。
      long l = 10000000000L;
      
  • 浮点型

    • float:32 位,单精度。
      float f = 10.5f;
      
    • double:64 位,双精度。
      double d = 10.5;
      
  • 字符型

    • char:16 位,无符号 Unicode 字符,范围从 '\u0000' 到 '\uffff'。
      char c = 'A';
      
  • 布尔型

    • boolean:只有两个值:truefalse
      boolean flag = true;
      

2. 引用数据类型

引用数据类型包含类、接口和数组。它们指向对象,而不是存储值。

  • String str = "Hello, World!";
    
  • 接口

    List<String> list = new ArrayList<>();
    
  • 数组

    int[] arr = {1, 2, 3, 4, 5};
    

类型转换技巧

类型转换是将一种数据类型转换为另一种数据类型。Java 中的类型转换分为隐式转换和显式转换。

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

隐式类型转换是指在无需显式指定转换的情况下,编译器自动完成的类型转换。它通常发生在范围小的类型向范围大的类型转换时。

  • intlong

    int i = 100;
    long l = i; // 自动转换
    
  • floatdouble

    float f = 10.5f;
    double d = f; // 自动转换
    

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

显式类型转换是指通过使用强制转换运算符将一种数据类型转换为另一种数据类型。它通常发生在范围大的类型向范围小的类型转换时。

  • longint

    long l = 100000L;
    int i = (int) l; // 强制转换
    
  • doublefloat

    double d = 10.5;
    float f = (float) d; // 强制转换
    
  • intchar

    int i = 65;
    char c = (char) i; // 强制转换,结果为 'A'
    

类型转换中的注意事项

  1. 数据丢失:从范围大的类型转换到范围小的类型时,可能会导致数据丢失。

    long l = 10000000000L;
    int i = (int) l; // 数据丢失,结果为 1410065408
    
  2. 精度丢失:从浮点型转换为整型时,可能会导致精度丢失。

    double d = 10.99;
    int i = (int) d; // 精度丢失,结果为 10
    
  3. 类型不兼容:并非所有类型都可以相互转换,例如布尔类型不能转换为其他类型。

    boolean flag = true;
    // int i = (int) flag; // 编译错误
    

字符串与其他类型的转换

  • 从基本数据类型到字符串

    int i = 100;
    String str = Integer.toString(i);
    
  • 从字符串到基本数据类型

    String str = "100";
    int i = Integer.parseInt(str);
    

总结

  • 基本数据类型:包括整型、浮点型、字符型和布尔型。
  • 引用数据类型:包括类、接口和数组。
  • 隐式类型转换:自动完成的类型转换,通常是从范围小的类型到范围大的类型。
  • 显式类型转换:需要强制转换运算符的类型转换,通常是从范围大的类型到范围小的类型。
  • 注意事项:类型转换时需注意数据丢失、精度丢失和类型不兼容问题。
  • 字符串转换:基本数据类型和字符串之间的相互转换。

通过掌握这些类型和类型转换技巧,可以有效地进行数据处理和操作,编写出更加健壮和高效的 Java 程序。


原文链接:codingdict.net