Skip to content

Java变量、常量及常用基础数据类型 ​

本文为初学者讲解Java中变量、常量以及在Spring Boot企业应用开发中常用的基础数据类型。每种数据类型将按照以下结构介绍:概念及特点、示例代码、常见误区。以下介绍的类型是企业级应用中常见的:int、double、boolean、String(尽管String严格来说不是基础数据类型,但在企业开发中极为常用,视为基础类型处理),以及补充的long类型。


1. 变量与常量简介 ​

变量 ​

变量是程序中用于存储数据的命名内存区域,其值在程序运行时可以改变。Java是强类型语言,变量必须在声明时指定数据类型。

特点:

  • 必须先声明后使用。
  • 变量名遵循标识符命名规则(字母、数字、下划线,首字符不能是数字)。
  • 变量的作用域取决于声明位置(如局部变量、实例变量)。

常量 ​

常量是值不可更改的变量,使用final关键字定义。常用于定义不可变的值,如配置参数。

特点:

  • 使用final修饰,值在初始化后不可更改。
  • 通常与static结合,用于类级别的共享常量。
  • 命名通常全大写,单词间用下划线分隔。

2. 常用基础数据类型 ​

2.1 int(整型) ​

概念及特点 ​

int是32位有符号整数,范围为-2,147,483,648到2,147,483,647。在Spring Boot应用中,int常用于表示ID、计数器、循环索引等场景,因其性能高效且内存占用适中。

示例代码 ​

java
public class IntDemo {
    public static void main(String[] args) {
        int age = 25;
        System.out.println("Age: " + age);
        age = 26; // 变量值可更改
        System.out.println("Updated Age: " + age);
    }
}

输出:

Age: 25
Updated Age: 26

常见误区 ​

  • 溢出问题:int范围有限,超出范围会导致溢出。例如,int max = 2147483647; max += 1;会导致结果变为负数。
  • 与浮点数混淆:在需要小数运算时,误用int会导致精度丢失。例如,int result = 5 / 2;结果为2,而不是2.5。

2.2 double(双精度浮点型) ​

概念及特点 ​

double是64位双精度浮点数,适合表示小数,如金额、百分比、科学计算等。Spring Boot中常用于金融计算或需要高精度的小数场景。

示例代码 ​

java
public class DoubleDemo {
    public static void main(String[] args) {
        double price = 99.99;
        double tax = 0.08;
        double total = price * (1 + tax);
        System.out.println("Total Price: " + total);
    }
}

输出:

Total Price: 107.9912

常见误区 ​

  • 精度问题:浮点运算可能导致精度误差,例如0.1 + 0.2可能不精确等于0.3。在金融场景中,建议使用BigDecimal替代double。
  • 默认值:未初始化的double局部变量不会自动设为0.0,需手动初始化,否则编译报错。

2.3 boolean(布尔型) ​

概念及特点 ​

boolean表示逻辑值,只有true和false两种取值。常用于条件判断、标志位等场景,如Spring Boot中的配置开关或状态检查。

示例代码 ​

java
public class BooleanDemo {
    public static void main(String[] args) {
        boolean isActive = true;
        if (isActive) {
            System.out.println("System is active!");
        } else {
            System.out.println("System is inactive.");
        }
    }
}

输出:

System is active!

常见误区 ​

  • 直接比较:初学者常写if (isActive == true),多余的== true可以省略,直接用if (isActive)。
  • 与整数混淆:Java中boolean不能直接转换为int(如C语言中的1或0),需显式处理。

2.4 String(字符串) ​

概念及特点 ​

String是Java中的引用类型,但因其在企业开发中的普遍性,常被视为基础类型。String对象表示不可变的字符序列,常用于存储文本数据,如用户名、JSON字符串等。Spring Boot中广泛用于API响应、配置文件等。

示例代码 ​

java
public class StringDemo {
    public static void main(String[] args) {
        String greeting = "Hello, Spring Boot!";
        System.out.println(greeting);
        String upperCase = greeting.toUpperCase();
        System.out.println("Uppercase: " + upperCase);
    }
}

输出:

Hello, Spring Boot!
Uppercase: HELLO, SPRING BOOT!

常见误区 ​

  • 字符串拼接性能:使用+拼接字符串在循环中效率低,应使用StringBuilder或StringBuffer。
  • 空值与null:String str = ""表示空字符串,而String str = null表示未初始化,调用方法可能抛出NullPointerException。
  • 不可变性:String对象不可变,调用toUpperCase()等方法会返回新对象,原对象不变。

2.5 long(长整型) ​

概念及特点 ​

long是64位有符号整数,范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807。在Spring Boot应用中,long常用于处理大范围整数,如时间戳(毫秒)、数据库主键ID、计数器等场景,适合需要超出int范围的数值。

示例代码 ​

java
public class LongDemo {
    public static void main(String[] args) {
        long timestamp = System.currentTimeMillis();
        System.out.println("Current Timestamp (ms): " + timestamp);
        long largeNumber = 1234567890123L; // 使用L后缀表示long类型
        System.out.println("Large Number: " + largeNumber);
    }
}

输出(实际时间戳会随运行时间变化):

Current Timestamp (ms): 1741102323456
Large Number: 1234567890123

常见误区 ​

  • 缺少L后缀:直接赋值为大整数(如1234567890123)会因超出int范围导致编译错误,需加L后缀明确指定long类型。
  • 溢出问题:尽管long范围较大,仍可能溢出,需谨慎处理超大数值运算。
  • 与int混用:在算术运算中,long与int混合可能导致隐式转换,需注意类型一致性。

3. 常量示例 ​

概念及特点 ​

常量使用final关键字定义,值不可更改,常用于定义固定值,如配置参数或业务规则。

示例代码 ​

java
public class ConstantDemo {
    public static final double PI = 3.14159;
    public static void main(String[] args) {
        double radius = 5.0;
        double area = PI * radius * radius;
        System.out.println("Circle Area: " + area);
    }
}

输出:

Circle Area: 78.53975

常见误区 ​

  • 未初始化:final变量必须在声明时或构造函数中初始化,否则编译报错。
  • 误用非final变量:在团队开发中,误将可变变量当作常量使用可能导致逻辑错误,建议明确使用final。