当前位置: 首页 > 面试题库 >

为什么在Java中不使用const关键字?

宫修贤
2023-03-14
问题内容

为什么在Java中不使用const关键字?
您能看到在Java语法中使用某些可传递const或不可变关键字的任何缺点,还是为什么选择了常见的繁琐方法?

您能看到关闭请求的 原因
,Sun提供了任何解释吗?


问题答案:

您能看到关闭请求的原因吗,Sun是否提供任何解释?

是。Sun在请求本身中提供了三个为什么不对请求执行操作的原因。我引用:

“目前尚无计划将此功能添加到Java中。除了蔓延的特性主义外,我们还发现此功能存在以下问题:

  • 现在添加const为时已晚。如果从1.0开始添加,情况可能会有所不同。

  • 常量污染:C 方法要求所有const方法都必须用const关键字标记。这意味着大多数方法将必须显式标记为const。这往往会使C

    中的所有方法混乱。

* 兼容性是JDK的一个非常重要的功能。可以说,应该修改集合类以指示元素是const。这将需要以相同的方式更新所有现有的实现,从而有效破坏集合接口的所有现有的非JDK实现。同样,hashCode必须是const,破坏了String的当前实现。”

更新

出于好奇,我花了几分钟时间浏览Project COIN邮件列表的主题行。令我惊讶的是,没有人愿意提出建议const。(或者如果他们这样做,我会错过的。)

因此,要么没人在乎(足够)这个想法,要么有足够专业知识来制定项目COIN提案的人意识到,它没有机会通过要求。



 类似资料:
  • 我正在学习颤振(主要来自Youtube) 为什么我们需要在赋值运算符后面使用关键字,因为我们已经将其设置为

  • 问题内容: 我了解这代表调用方法的对象,并且静态方法未绑定到任何对象。但是在上述情况下,变量y也是静态的。 如果我们可以在类对象上调用静态方法,为什么不能允许静态方法设置类的静态变量。 此附加约束的目的是什么? 问题答案: 因为是指对象实例。静态方法的调用中没有对象实例。但是当然你可以访问你的静态字段(仅静态字段!)。只需使用 如果要确保获取的是静态字段,而不是某些具有相同名称的局部变量,请使用类

  • 问题内容: Axel Rauschmayer博士在 _探索ES6中_有const定义: 就像let一样工作,但是您声明的变量必须立即初始化, 并且其值以后不能更改 。[…] 然后他写道 陷阱:const不会使值不变 仅表示变量始终具有相同的值,但并不表示该值本身是不变的。 我对此陷阱感到困惑。有人可以用这个陷阱清楚地定义吗? 问题答案: 很好地总结了一下: const声明创建对值的只读引用。这并不

  • 问题内容: 什么时候不宜在方法签名上使用Java中的static关键字?如果方法基于某些参数执行功能,并且不需要访问非静态字段,那么您是否不总是希望这些类型的方法都是静态的? 问题答案: 您 可能 不希望它为静态的一个原因是允许它在子类中被覆盖。换句话说,行为可能不取决于对象内的数据,而是取决于对象的确切类型。例如,您可能具有常规的集合类型,其属性将在始终可变的集合,始终不可变的集合中返回,并依赖

  • 问题内容: 似乎几乎没有人意识到这一点,但是Java中的“ thisreference”是最终的。在正常的编程天中,我认为可以通过在自己的类中重新定义此引用来重新定义整个实例: 为什么此引用在Java中是最终的? 问题答案: 问题不在于它是参考,而是它本身根本不是参考。是一个 关键字 ,“表示一个值,该值是对为其调用实例方法或默认方法的对象的引用”(JLS§15.8.3)。 此外,从可以重新分配变

  • 本文向大家介绍此关键字在Java中有什么用?,包括了此关键字在Java中有什么用?的使用技巧和注意事项,需要的朋友参考一下 Java中的“ this”关键字是对当前类对象的引用。使用它,您可以引用类的字段,方法或构造函数。 使用“ this”关键字引用字段 如前 ,您可以使用“ this” 关键字从实例方法或构造函数中引用类的实例字段/变量。  即如果一个方法的名称相同的实例变量一个局部变量的话,