final关键字
final关键字修饰的类不能被继承、修饰的方法不能被重写但可以重载多个final修饰的方法、修饰的变量不可变。final修饰的类中所有成员方法都会被隐式地指定为final方法,重写的前提是子类可以从父类中继承此方法。final修饰一个成员变量必须初始化,final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化,如果final修饰的是一个引用类型,初始化后这个引用变量所引用的地址不会改变即一直引用同一个对象,但这个对象值可以发生改变。
public final class String
implements java.io.Serializable, Comparable<string>, CharSequence{
/** The value is used for character storage. */
private final char value[];
/** Cache the hash code for the string */
private int hash; // Default to 0
}
value指向的是一个字符串数组,字符串中的字符就是用这个value变量存储起来的,value赋予初始值之后,value指向的地址就不能再改变了。虽然value指向的数组是可以改变的,但是String没有提供相应的方法修改数组的元素。在StringBuilder中提供了响应的方法修改value指向数组的元素,这也是StringBuilder的字
final关键字在Java中用于修饰类、方法和变量,确保它们的不可变性或防止继承和重写。final修饰的类不能被继承,方法不能被重写但可以重载。对于final变量,一旦初始化后其值不能改变。String类因其final属性而具备不可变性,每次修改字符串都会生成新对象。JVM为了优化,使用字符串常量池来存储字符串,确保不会有两个相同的字符串实例。
订阅专栏 解锁全文
726

被折叠的 条评论
为什么被折叠?



