java方法的参数 为啥有时会加上final关键字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java方法的参数 为啥有时会加上final关键字相关的知识,希望对你有一定的参考价值。
final方法将方法声明为final,那就说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。另外有一种被称为inline的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,可能反而会影响效率,所以你要慎用final进行方法定义。
下面是百度百科的
final方法:
如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。 参考技术A 虽然很多java文档说java是值传递的,其实java中对象的传输可以认为是引用传递。在方法中如果对参数中的内容进行修改的话,调用发起方的数据也会同步发生变化。而设置了final就确保,不会也不能对于参数进行修改,保证了调用发起方数据的安全。 参考技术B 对于对象参数来说 ,加上final 可以防止对该形参进行二次赋值,比如你要修改一个user对象,在方法中你对形参赋值了一个新的user对象,然后你再修改这个形参变量,外部对象就不会发生变化,导致你的业务逻辑错误.所以加上final ,可以防止你写错 参考技术C fianl是最终的意思 也就是不能修改 加上final关键字 主要是为了防止该参数的值被修改来自:求助得到的回答本回答被提问者和网友采纳 参考技术C 因为对象可以共享,对象属性不能共享,所以sun公司玩了个花招,把类 的 属性值 拷贝一份到 内部类 匿名类之类的。但你改变了这个类的属性就会发生错误。sun公司就规定:内部类、匿名类访问外部属性必须加final,就是一次赋值不能再改变了。
以上是关于java方法的参数 为啥有时会加上final关键字的主要内容,如果未能解决你的问题,请参考以下文章
《Java架构筑基》从Java基础讲起——深入理解Finial