Skip to content

2026-08-27 · Java 里数据怎么存、怎么用。

Java 数据与变量

1. 常量

值一旦赋给就不能再改变的量,用 final 修饰:

java
final double PI = 3.14159;
final String NAME = "Java";

// PI = 3.14;  // 编译报错:不能修改 final 变量

常量名全大写,单词之间用下划线分隔:MAX_RETRYDEFAULT_TIMEOUT

系统内置常量(直接用,不用定义):

java
System.out.println(Integer.MAX_VALUE);   // int 最大值 2147483647
System.out.println(Integer.MIN_VALUE);   // int 最小值 -2147483648
System.out.println(Double.MAX_VALUE);    // double 最大值

2. 变量

存数据的容器,值可以随时改:

java
int age = 25;       // 声明 + 赋值
age = 26;           // 重新赋值(没问题,因为不是 final)
String name = "张三";
name = "李四";      // String 也能改(引用类型,后面会讲)

命名规则(硬性,不遵守编译报错)

  • 只能用:字母、数字、_$
  • 不能以数字开头:int 1age;
  • 不能用关键字:int class;
  • 区分大小写:nameNameNAME

命名习惯(软性,不遵守能编译,但会被骂)

  • 变量/方法:小驼峰 studentNamegetMaxValue
  • 类名:大驼峰 StudentStudentService
  • 常量:全大写下划线 MAX_RETRY
  • 包名:全小写 com.example.utils

3. 基本数据类型(8 种 primitive)

Java 有 8 种基本类型,不是对象,直接存值:

类型字节取值范围默认值举例
byte1-128 ~ 1270byte b = 100;
short2-32768 ~ 327670short s = 1000;
int4约 ±21亿0int i = 100000;
long8很大很大0Llong l = 100000L;(后缀 L)
float4单精度,约7位有效数字0.0ffloat f = 3.14f;(后缀 f)
double8双精度,约15位有效数字0.0double d = 3.14;
char20 ~ 65535'\u0000'char c = 'A';
boolean1/4true / falsefalseboolean flag = true;

记忆:日常最常用的是 intdoublebooleancharlong 用大写 L 后缀(小写 l 和数字 1 长得像,用大写避免歧义),float 用小写 f 后缀。

char 的特殊之处:

java
char c1 = 'A';      // 字符
char c2 = 65;       // 用 Unicode 码点赋值,等价于 'A'
char c3 = '\u0041'; // Unicode 写法,也是 'A'
System.out.println(c1); // 输出 A

4. 类型转换

自动类型转换(小 → 大,自动转)

java
int i = 100;
double d = i;  // int 自动转 double,不用管
// d = 100.0

自动转换链:byte → short → int → long → float → doublechar → int → long → ...

强制类型转换(大 → 小,手动转)

java
double d = 3.99;
int i = (int) d;  // 强制截断,不是四舍五入
// i = 3(直接砍掉小数部分)

强制转换可能丢精度或溢出,谨慎使用。反过来,从大范围转到小范围必须强转,编译器不让自动转。

字符串与数字互转

java
// 数字 → 字符串
String s = String.valueOf(100);  // "100"
String s2 = 100 + "";            // "100"(拼接空串,不推荐)

// 字符串 → 数字
int i = Integer.parseInt("100");      // 100
double d = Double.parseDouble("3.14"); // 3.14

Integer.parseInt() 是最常用的,记住这一个就够。