Java 中的 final 关键字真的能防止一切修改吗?

yumo6665个月前 (06-13)技术文章22

final 是 Java 关键字,用于防止修改,但并非所有情况都能阻止更改。

1 修饰变量:值不能变(基本类型),对象引用不能变(但对象内容可以变)。

final int a = 10; // 不能修改 a 的值  
final List<String> list = new ArrayList<>();
list.add("Hello"); // 可以修改 list 的内容

2 修饰方法:防止子类重写。
3 修饰类:防止被继承,例如 String 类。

所以,final 只防止引用变更,不阻止对象内部状态修改!

相关文章

Java关键字:final,static,this,super

1. final 关键字:final 关键字,意思是最终的、不可改变的,初始化之后就不能再次修改 ,用来修饰类、方法和变量,具有以下特点:final 修饰的类不能被继承,final类中的所有成员方法都...

Java中final关键字的多样魅力

Java中final关键字的多样魅力在Java编程的世界里,final关键字就像是一位低调却实力非凡的角色。它不是那种让人一眼就惊艳的存在,但只要你深入接触,就会发现它在不同场景下展现出来的独特魅力。...

吊打面试官(五)--Java关键字volatile一文全掌握

前言 volatile 是 Java 中的一个关键字,用于声明变量。当一个变量被声明为 volatile时,它可以确保线程对这个变量的读写都是直接从主内存中进行的。这也是面试官最爱问的点,接下来我们详...

吊打面试官(七)--Java语言static关键字一文全掌握

导读static关键字在Java中用于创建类级别的成员,这些成员不属于类的任何特定实例,而是属于整个类。static可以用于修饰变量、方法、代码块和内部类。本文从基础使用,使用问题,使用场景,底层原理...

吊打面试官(六)--Java语言final关键字一文全掌握

导读final关键字在Java中有多种用途,可以用于修饰类、方法和变量。本文从常规使用场景、常见的误解、底层原理、jdk源码案例,常见使用场景等几方面全面剖析关键字的各个方面内容。帮助大家理解并使用该...

轻松掌握Java多线程 - 第六章:volatile关键字

学习目标1 内存可见性问题1.1 什么是内存可见性1.2 内存可见性问题的原因2 volatile的作用与使用场景2.1 volatile关键字介绍2.2 volatile的内存语义2.3 volat...