final修饰变量 与Stastic修饰的变量

本文详细解析了final与static修饰符的区别与使用方法。final用于禁止变量被重新赋值,而static则允许变量在整个类中被静态调用。文章还深入探讨了final如何应用于不同类型的变量,并解释了final与static在变量初始化过程中的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、final修饰变量

   final可以修饰成员变量,也可以修饰局部变量、形参。final变量一旦获得初始值之后,final的变量就不能被重新赋值。

   成员变量是随类初始化或对象初始化而初始化的,当执行静态初始化块时候可以对类属性进行赋初始值,当执行普通初始化块或者构造器的时候可以对实例属性赋初始值。因此成员变量的初始值可以在定义的时候赋值或者在初始化块、构造器中指定。

   对于final修饰的成员变量而言,一旦有了初始值之后,就不能被重新赋值,因此不可以在普通方法中对成员变量赋值。要么在定义的时候赋值,要么在方法块和构造器中赋值。

   final成员变量,必须由程序员显示初始化,系统不会对final成员进行隐式初始化。

 

   final修饰局部变量时既可以在定义时候指定默认值,也可以不指定,在后面指定,但只能一次。

   final修饰基本类型的时候 变量不能改变

   final修饰引用类型变量,final只保证这个引用的地址不变,即一直引用同一对象。但这个对象可以改变。

二 

Stastic为静态变量,在一个类中的任何地方都可以调用,而final表示这个变量不能被修改,会被初始化
静态的只能访问静态的,非静态成员方法可以直接访问静态成员方法,

### `final`关键字修饰变量的含义 在 Java 中,`final`关键字用于定义不可更改的变量。这意味着一旦变量被初始化,其值就不能再被修改。`final`变量通常用于表示常量,即在整个程序运行过程中保持不变的值[^1]。 ### `final`关键字修饰变量的作用 1. **常量定义** `final`关键字常用于定义不会改变的值,例如数学常数、配置参数等。通过这种方式,可以明确地表达这些值的不变性,提高代码的可读性和可维护性。 ```java public class Constants { public static final double PI = 3.14159; } ``` 2. **保证不变性** 使用 `final`关键字可以确保变量在初始化后不会被意外修改。这种不变性有助于减少程序中的副作用,使代码更加健壮和易于理解。例如,在多线程环境中,`final`变量的不可变性可以提高线程安全性,因为多个线程可以安全地共享和访问这些变量,而无需额外的同步机制[^3]。 3. **优化性能** 在某些情况下,编译器和运行时环境可以对 `final`变量进行优化。例如,`final`变量的值在编译时已知,因此可以直接内联到使用它的代码中,从而减少运行时的开销。这种优化可以提高程序的执行效率。 4. **增强代码可读性** 通过使用 `final`关键字,开发者可以明确表示某个变量的设计意图是不可变的。这种设计有助于其他开发者理解代码的意图,并减少因误修改变量而导致的错误。 5. **方法参数和局部变量的不可变性** `final`关键字也可以用于方法的参数和局部变量,确保这些变量在初始化后不会被修改。这种方法可以防止在方法内部对参数进行意外修改,从而提高代码的可靠性和可读性[^2]。 ### 示例代码 以下是一个使用 `final`关键字修饰变量的简单示例: ```java public class FinalVariableExample { private final int MAX_USERS = 100; // 常量定义 public void printMaxUsers() { System.out.println("Maximum number of users: " + MAX_USERS); } public static void main(String[] args) { FinalVariableExample example = new FinalVariableExample(); example.printMaxUsers(); // 输出: Maximum number of users: 100 // MAX_USERS = 200; // 错误,不能修改final变量 } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值