final修饰

1.final类:用final修饰的的类被称为最终类,不可继承 如:String、Math、System等工具类。

2.final方法:用final修饰的方法称为最终方法,不可覆盖(重写)。

3.final变量:用final修饰的变量叫常量,需赋值,值不可改变(没有初始值,只允许一次赋值)。
(1)局部常量赋值方式:显示初始化。
(2)实力常量赋值方式:显示初始化、动态代码块、构造方法。
(3)静态常量赋值方式:显示初始化、静态代码库。
(4)基本数据类型常量:值不可改变。
(5)引用数据类型常量:地址不可变。

package com.demo.controller;
public class kjh  {

	public static void main(String[] args){}
}

final class Animal {//最终类
	final int HLK=6;
	public final void name() {}//最终方法
}

final~~~
final~~~

<think>我们被要求回答问题后提出3-5个相关问题,且必须以“§§相关问题§§”开头并列出问题。 用户本次的问题是:“final修饰变量” 我们需要先解释final修饰变量的含义、用法和注意事项,然后提出相关问题。 回答结构: 1. 解释final修饰变量的基本概念 2. 说明final修饰局部变量、成员变量(静态和非静态)的不同 3. 强调final变量的不可变性和初始化要求 4. 可以给出简单的代码示例 然后,在最后输出“§§相关问题§§”并列出3-5个相关问题。 注意:问题要围绕final变量,可以扩展到相关概念,但不要离题。 </think>在Java中,`final`修饰变量表示该变量**只能被赋值一次**,其核心特性是**不可变性**。以下是详细解析: ### 一、`final`变量的特性 1. **基本类型变量** - 值不可修改(常量) ```java final int MAX_COUNT = 100; MAX_COUNT = 200; // 编译错误:无法为final变量赋值 ``` 2. **引用类型变量** - 引用地址不可修改(可修改对象内部状态) ```java final List<String> list = new ArrayList<>(); list.add("A"); // ✅ 允许修改对象内容 list = new ArrayList<>(); // ❌ 编译错误:无法修改引用地址 ``` ### 二、作用域与初始化规则 | 变量类型 | 初始化要求 | 示例 | |----------------|------------------------------|--------------------------| | **局部变量** | 使用前必须初始化 | `final int x; x=10;` ✅ | | **成员变量** | 必须在声明时或构造器中初始化 | 见下方Class示例 | | **静态变量** | 必须在声明时或静态块中初始化 | `static final int Y=20;`| ```java class Example { final int a = 1; // ✅ 声明时初始化 final int b; static final int c; Example() { b = 2; } // ✅ 构造器中初始化 static { c = 3; } // ✅ 静态块中初始化 } ``` ### 三、核心应用场景 1. **常量定义** ```java public static final double PI = 3.14159; ``` 2. **防止意外修改** 在方法参数中使用,确保传入对象不被替换: ```java void process(final List<String> data) { data = new ArrayList<>(); // ❌ 编译错误 } ``` 3. **线程安全支持** final变量初始化后对其他线程立即可见(无需同步) ### 四、特殊注意事项 1. **空白final(Blank Final)** 声明时不初始化,在构造器中初始化(允许多构造器不同初始化) ```java class BlankFinal { final int value; BlankFinal() { value = 1; } BlankFinal(int v) { value = v; } } ``` 2. **final与继承** - final变量 ≠ 常量表达式(编译时常量需满足特定条件) - 在匿名内部类中访问的局部变量必须声明为final
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值