java 中的 final 关键字在应用时是否显示出不同的效果:- 1) 在基元上 2) 在对象上?

Does final keyword in java show varying effects when applied :- 1) on a primitive 2) on an object?

在我看来好像:-

final 应用于基元时,它的行为类似于指向常量的指针 :-

const (type)* ptr

并且当 final 应用于一个对象时,它表现为一个常量指针 :-

(type)* const ptr

影响是一样的

您无法更改篮子。不过里面的水果还是可以换的。

忘掉指针和常量吧,final 意味着你不能重新初始化它,一旦你声明它final

对象不是最终的唯一引用。您仍然可以更改对象,但不能重新引用它。

你的第一点是误会。

原始变量的行为永远不像指针 - 原始变量的值是原始的。
对象变量的值是对对象的引用。

final 适用于变量,不适用于值,这意味着您不能为变量分配新值。

如果它是原始变量,它的值保持不变。
如果它是一个对象变量,则该变量总是引用相同的、可能可变的对象。

所以行为是相同的。