Java变量必须先声明后使用且类型不可变;声明语法为“类型+名字+分号”;局部变量须显式初始化,字段可省略;作用域由{}严格限定,无变量提升。
Java中变量必须先声明再使用,且类型不可改变——这是编译期强制约束,不是运行时约定。
变量声明语法:类型 + 名字 + 分号
Java要求每个变量在使用前显式声明类型,不支持var(Java 10+虽引入var,但仅限局部变量且需初始化,不能用于字段或返回值)。
-
int count = 0;—— 基本类型,栈上分配 -
String name = "Alice";—— 引用类型,栈存引用,堆存对象 -
final double PI = 3.14159;——final修饰后不可重新赋值 - 字段(类成员)可省略初始化,但局部变量必须显式初始化,否则编译报错
variable might not have been initialized
作用域由花括号{}决定,与代码块嵌套深度严格对应
Java没有函数级作用域或块级提升(hoisting),变量只在声明它的最内层{}内可见:
- 类字段:整个类内可见(含子类,取决于访问修饰符)
- 方法参数:仅在该方法体内有效
- for循环中声明的变量:
for (int i = 0; i →i在循环外不可访问 - if块内声明:
if (ok) { String msg = "done"; }→msg在if外直接报错cannot resolve symbol
static和非static字段的区别直接影响生命周期和共享性
是否加static决定了变量是属于类还是属于实例: