问题标签 [final]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 声明一个最终的静态方法是个坏主意吗?
我明白在这段代码中:
.. 中的静态方法Bar
“隐藏”中声明的静态方法Foo
,而不是在多态意义上覆盖它。
...将输出:
in Foo
in Bar
重新定义method()
为final
inFoo
将禁用Bar
隐藏它的能力,重新运行main()
将输出:
在 Foo
在 Foo
(编辑:当您将方法标记为时编译失败final
,并且仅在我删除时再次运行Bar.method()
)
将静态方法声明为 是否被认为是不好的做法final
,如果它阻止子类有意或无意地重新定义该方法?
(这是对使用行为的一个很好的解释final
..)
java - Java final 局部变量存储在哪里?
举个例子:
首先,env
存储在哪里?是吗:
- 由编译器复制到引用它的内部类的隐藏成员变量中
- 复制到堆并在堆上引用
- 留在堆栈上并以某种方式在那里引用
- 别的东西
我的猜测是第一个选项。
其次,做任何由此产生的性能问题(而不是简单地创建env
为类的成员变量并引用它),特别是如果您正在创建大量引用最终局部变量的此类内部类构造。
java - 使私有方法最终?
使私有方法最终化是否有益?那会提高性能吗?
我认为“private final”没有多大意义,因为私有方法不能被覆盖。所以方法查找应该像使用 final 时一样高效。
将私有辅助方法设为静态(如果可能)会更好吗?
最好用什么?
php - 在 PHP 中声明一个类的 ctor 'final' 是不好的做法吗?
如果我有一个由许多其他类扩展的父类,并且我想确保父类的构造函数始终运行,那么声明构造函数是一个坏主意final
吗?
我正在考虑做这样的事情:
这样子类可以有某种构造函数,而父类的构造函数将始终执行。这是不好的做法吗?
java - 最终变量可访问性
为什么不能在静态变量中访问最终变量。在编译时,它们被简单地直接替换为它们的值,因此,即使在静态方法中也应该允许它们使用
为什么有这个限制???
java - 为什么 String 类在 Java 中声明为 final?
当我了解到该类java.lang.String
在 Java 中被声明为 final 时,我想知道为什么会这样。当时我没有找到任何答案,但是这篇文章:如何在 Java 中创建 String 类的副本?让我想起了我的查询。
当然,String 提供了我曾经需要的所有功能,而且我从没想过需要扩展 String 类的任何操作,但您仍然永远不会知道某人可能需要什么!
那么,有没有人知道设计师在决定将其定稿时的意图是什么?
c# - c#sealed 和 Java 的 final 关键字在功能上有什么区别吗?
在 Java 中,final 不仅仅适用于一个类。
所以,我想知道:这两个关键字之间有什么功能上的区别吗?
谢谢,对于一个相对菜鸟的问题感到抱歉。
快速的谷歌搜索并不能满足我的需求。
java - java中的最终变量和同步块
Java中的final变量是什么?例如:如果我写final int temp;
在函数中,final关键字的含义是什么?
另外,我什么时候想使用 final 变量(作为类变量和函数变量)?
为什么必须将同步块中的变量声明为 final?
java - Java 'final' 关键字真的提高了安全性吗?
虽然在 Java 中使用“final”关键字的原因有很多,但我一遍又一遍地听到的其中一个原因是它使您的代码更安全。虽然在这个微不足道的情况下这似乎是有道理的:
使用 final 关键字,您会认为没有恶意代码能够更改变量 passwordHash。但是,使用反射可以更改 passwordHash 字段的最终修饰符。
那么“最终”是否提供任何真正的安全性,还是只是安慰剂?
编辑: 有一些非常有趣的讨论,我希望我能接受多个答案。谢谢各位的意见。
java - 为什么不能将方法的局部变量声明为最终变量?
我想知道为什么不能将方法本地的变量声明为最终变量。有什么具体原因吗?
这是否意味着Java中没有局部常量?