static final与final与static修饰的变量有什么不同
时间: 2023-02-09 10:05:05 浏览: 126
- static final 修饰的变量是静态常量,它的值在程序运行期间不能改变。
- final 修饰的变量是实例常量,它的值在对象创建后不能改变。
- static 修饰的变量是静态变量,它的值在程序运行期间可以改变。
总结:static final是静态常量,final是实例常量,static是静态变量。
相关问题
static、static final、final修饰的变量的区别
`static`、`static final`和`final`是Java中用于修饰变量的关键字,它们有以下区别:
1. `static`:用于创建静态变量。静态变量属于类,而不是实例化对象。它在类加载时就会被初始化,并且所有该类的实例共享相同的静态变量。可以通过类名直接访问静态变量。
2. `final`:用于声明一个常量,即值不能被修改的变量。`final`修饰的变量只能被赋值一次,并且在声明时或构造函数中赋值。一旦赋值后,其值就不能再改变。
3. `static final`:用于声明一个静态常量。静态常量是类级别的常量,它在类加载时就会被初始化,并且所有该类的实例共享相同的静态常量。与普通的`final`变量不同,静态常量一般使用全大写字母来命名。
总结:
- `static`用于创建静态变量,属于类级别,所有实例共享。
- `final`用于声明常量,一旦赋值后不能再修改。
- `static final`用于声明静态常量,属于类级别,所有实例共享,一旦赋值后不能再修改。
static、static final、final修饰的变量的区别。举例说明其区别
下面是使用不同修饰符的变量的示例,以说明它们之间的区别:
```java
public class Example {
// 静态变量
public static int staticVariable = 10;
// 静态常量
public static final int STATIC_FINAL_VARIABLE = 20;
// 实例变量
public int instanceVariable = 30;
// 实例常量
public final int FINAL_VARIABLE = 40;
public void method() {
// 局部变量
int localVariable = 50;
System.out.println("静态变量:" + staticVariable);
System.out.println("静态常量:" + STATIC_FINAL_VARIABLE);
System.out.println("实例变量:" + instanceVariable);
System.out.println("实例常量:" + FINAL_VARIABLE);
System.out.println("局部变量:" + localVariable);
}
}
```
在上面的示例中,我们创建了一个名为`Example`的类,并定义了不同类型的变量。
- `staticVariable`是一个静态变量,它属于类级别,可以通过类名直接访问。所有该类的实例共享相同的静态变量。
- `STATIC_FINAL_VARIABLE`是一个静态常量,它也属于类级别。一旦被赋值,其值无法修改。所有该类的实例共享相同的静态常量。
- `instanceVariable`是一个实例变量,它属于对象级别,每个对象都有自己的实例变量。
- `FINAL_VARIABLE`是一个实例常量,它属于对象级别。一旦被赋值,其值无法修改。
- `localVariable`是一个局部变量,它只在方法中可见,并且在方法执行完毕后被销毁。
在`method`方法中,我们打印了不同类型的变量的值。
总结:
- `static`用于创建类级别的变量,所有实例共享。
- `final`用于声明常量,一旦赋值后不能再修改。
- `static final`用于声明类级别的常量,所有实例共享,一旦赋值后不能再修改。
- 实例变量和实例常量属于对象级别,每个对象都有自己的副本。
- 局部变量只在方法中可见,方法执行完毕后被销毁。
阅读全文