java方法的参数 为什么有时会加上final关键字53
发布网友
发布时间:2023-11-06 08:21
我来回答
共5个回答
热心网友
时间:2024-01-02 16:55
final方法
将方法声明为final,那就说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。另外有一种被称为inline的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,可能反而会影响效率,所以你要慎用final进行方法定义。
下面是百度百科的
final方法:
如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
热心网友
时间:2024-01-02 16:56
防止在方法实现时,不小心做了修改。比方说,你需要传入一个用户的对象,来查找什么东西,一个只读的功能,但是实现的时候不小心给人家的信息改了,那别人接着用这个对象,就很难发现问题。很多语言特性,像final,基本的目的就是防止程序员犯错。
热心网友
时间:2024-01-02 16:56
虽然很多java文档说java是值传递的,其实java中对象的传输可以认为是引用传递。在方法中如果对参数中的内容进行修改的话,调用发起方的数据也会同步发生变化。而设置了final就确保,不会也不能对于参数进行修改,保证了调用发起方数据的安全。
热心网友
时间:2024-01-02 16:57
fianl是最终的意思 也就是不能修改 加上final关键字 主要是为了防止该参数的值被修改来自:求助得到的回答
热心网友
时间:2024-01-02 16:57
防止在方法体内对传入变量误操作,造成不必要的错误
比如
public static String toString(StringBuffer sb){
//逻辑处理
}
传入的sb,可能会被修改,如果确定传入这个值不能修改
就加个FINAL
public static String toString(final StringBuffer sb){
}