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

yumo6666个月前 (06-13)技术文章29

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并发编程中的volatile关键字深度解读

Java并发编程中的volatile关键字深度解读提到Java中的关键字volatile,我们常常会联想到它与线程安全的紧密关系。作为一个经常出现在面试题中的"明星"关键字,volat...

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

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

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

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

关于 Java 关键字 volatile 的总结

1 什么是 volatilevolatile 是 Java 的一个关键字,它提供了一种轻量级的同步机制。相比于重量级锁 synchronized,volatile 更为轻量级,因为它不会引起线程上下文...

还没弄明白Java中的this关键字吗,那来看这篇就够了

今天在上课时,冉冉大妹纸拉着我问:小哥哥,小哥哥,听说你在学Java,那你知道this关键字吗?我:啊?this啊? (完了完了,学习的时候学的什么也不是,这下被问到了,还是个妹纸,答不上来岂不尴尬)...