有人告诉我,我误解了的影响final
。final
关键字有什么作用?
这是我的想法的简短概述,我知道:
Java最终修饰符(又名聚合关系)
原始变量:只能设置一次。(内存和性能提升)
对象变量:可以修改,最终适用于对象引用。
字段:只能设置一次。
方法:不能被覆盖,隐藏。
类别:无法扩充。
垃圾收集:将强制Java代垃圾收集标记扫描进行两次扫描。
会使克隆失败(这既好又坏)
可以使不可变的原语又称为const
可以使空白不可变-在创建时初始化为aka只读
可以使对象浅成不变
可以使范围/可见性不变
可以使方法调用的开销较小(因为它不需要虚拟表)
可以将方法参数用作最终参数(即使您不是)
可以使对象成为线程安全的(如果将对象定义为final,则不会使方法参数成为final)
可以进行模拟测试(不是您可以做任何事-您可以说是故意的错误)
不能交朋友(与其他朋友可变而不能休息)
以后不能使可变成为不变的(但可以使用工厂模式,如修复)
不能使数组元素不可变又称为深度不可变
无法创建对象的新实例(这既好又坏)
无法使序列化工作
没有其他替代方法final
,但是有wrapper + private和enums。
繁花如伊
大话西游666
相关分类