Questions tagged «final»

11
Java的最终版本与C ++的const
该Java进行C ++程序员教程说,(大亮点是我自己的): 关键字final 大致 等同于C ++中的const 在这种情况下,“大致”是什么意思?他们不是完全一样吗? 有什么区别(如果有)?
151 java  c++  const  final 

7
最终静态和静态最终之间的区别
我发现了一个代码,它声明了如下代码 private final static String API_RTN_SUCCESS = "0"; private final static String API_RTN_ERROR = "1"; public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config"; public static final String STARTUP_SETTING_KEY = "startup_setting"; 它们之间有什么区别或相同?还是与private或不同public?
151 java  static  final 


5
Java`final`方法:它有什么承诺?
在Java类中,可以将方法定义为final,以标记该方法不能被覆盖: public class Thingy { public Thingy() { ... } public int operationA() {...} /** this method does @return That and is final. */ public final int getThat() { ...} } 这很明显,它可能对防止意外的覆盖或性能有所帮助-但这不是我的问题。 我的问题是:从OOP的角度,我理解,通过定义一种方法final,类设计器保证该方法将始终按所描述或隐含的方式工作。但这通常可能超出了类作者的影响,如果该方法执行的操作更为复杂,则仅提供属性即可。 语法约束对我来说很清楚,但是在OOP意义上有什么含义?final大多数班级作者在这种意义上是否正确使用了? 一种final方法承诺什么样的“合同” ?
141 java  oop  final 

16
为什么在Java中将String类声明为final?
当我得知该类java.lang.String在Java中被声明为final时,我想知道为什么会这样。那时我没有找到任何答案,但是这篇文章:如何在Java中创建String类的副本?让我想起了我的疑问。 当然,String提供了我需要的所有功能,而且我从未想到过需要扩展String类的任何操作,但是您仍然永远不会知道有人可能需要的! 那么,有谁知道设计师决定将其定稿时的意图是什么?
141 java  string  final 

8
为什么Java中没有常量功能?
我试图确定Java常量背后的原因,我了解到Java允许我们使用final关键字声明常量。 我的问题是Java为什么不引入Constant(const)功能。因为很多人说它来自C ++,所以在C ++中我们有const关键字。 请分享您的想法。
140 java  constants  final 

7
最终静态方法的行为
我一直在使用静态方法修改器,并且遇到了奇怪的行为。 众所周知,静态方法不能被覆盖,因为它们与类而不是实例相关联。 因此,如果我具有以下代码段,则可以正常编译 //Snippet 1 - Compiles fine public class A { static void ts() { } } class B extends A { static void ts() { } } 但是,如果我在类A中包含了对静态方法的final修饰符,则编译失败 ,B中的ts()无法覆盖A中的ts();覆盖的方法是static final。 当根本无法覆盖静态方法时,为什么会发生这种情况?
123 java  methods  static  final 


2
有效最终与最终-不同的行为
到目前为止,我认为有效的final和final或多或少是等效的,并且JLS将在实际行为上将它们视为相同或相似的内容。然后我发现了这个人为的场景: final int a = 97; System.out.println(true ? a : 'c'); // outputs a // versus int a = 97; System.out.println(true ? a : 'c'); // outputs 97 显然,JLS在这两者之间起了重要的作用,我不确定为什么。 我读了其他主题 最终和有效最终之间的区别 有效的最终变量与最终变量 变量“有效最终”是什么意思? 但它们没有详细说明。毕竟,从更广泛的意义上讲,它们似乎是等效的。但是深入研究,它们显然有所不同。 是什么导致此行为,任何人都可以提供一些解释此问题的JLS定义吗? 编辑:我发现了另一个相关的方案: final String a = "a"; System.out.println(a + "b" == "ab"); // outputs true // …


2
为什么“ private val”和“ private final val”不同?
我常想,private val和private final val一样,直到我在斯卡拉参考看到第4.1节: 常量值定义为以下形式 final val x = e 其中e是一个常量表达式(第6.24节)。final修饰符必须存在,并且不能给出类型注释。对常量值x的引用本身被视为常量表达式。在生成的代码中,它们将替换为定义的右侧e。 我写了一个测试: class PrivateVal { private val privateVal = 0 def testPrivateVal = privateVal private final val privateFinalVal = 1 def testPrivateFinalVal = privateFinalVal } javap -c 输出: Compiled from "PrivateVal.scala" public class PrivateVal { public int testPrivateVal(); Code: 0: …
100 scala  private  final 


11
将Java方法参数作为最终参数
final下面的代码之间有什么区别?将参数声明为是有什么好处final? public String changeTimezone( Timestamp stamp, Timezone fTz, Timezone toTz){ return .... } public String changeTimezone(final Timestamp stamp, final Timezone fTz, final Timezone toTz){ return .... }

7
为什么可以修改最终对象?
我在正在处理的代码库中遇到以下代码: public final class ConfigurationService { private static final ConfigurationService INSTANCE = new ConfigurationService(); private List providers; private ConfigurationService() { providers = new ArrayList(); } public static void addProvider(ConfigurationProvider provider) { INSTANCE.providers.add(provider); } ... INSTANCE声明为final。为什么可以添加对象INSTANCE?那不应该使final的使用无效。(不是)。 我假设答案必须与指针和内存有关,但想确定。
89 java  final 

15
在Java中将final用于变量会改善垃圾回收吗?
今天,我和我的同事们讨论了如何final在Java中使用关键字来改善垃圾回收。 例如,如果您编写如下方法: public Double doCalc(final Double value) { final Double maxWeight = 1000.0; final Double totalWeight = maxWeight * value; return totalWeight; } final在方法退出后,在方法中声明变量将有助于垃圾回收从方法中未使用的变量中清除内存。 这是真的?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.