问题内容: 考虑一下Java中的以下接口: 和以下类: 为什么类A可以出现并覆盖接口I的最终常量? 自己尝试: 问题答案: 尽管事实上您正在隐藏变量,但是知道可以在java中更改final字段非常有趣,因为您可以在此处阅读: Java 5-“最终”不再是最终的 挪威Machina Networks的Narve Saetre昨天给我发了一封便条,其中提到我们可以将句柄更改为最终数组,这是很遗憾的。我
问题内容: 我正在做一些实验,无意间写了一段代码,这很奇怪,我还没完全明白。我什至可以编译它,我什至感到惊讶。看起来像这样: 不出所料,无法通过以下方式访问此类元素: 原因是,编译器将在枚举本身内寻找该方法。 我以为不可能从枚举之外访问这些方法和变量。因此,我尝试创建一个参数构造函数,并使用一些内部变量进行调用: 不可能编译这样的构造。现在,我在想如果没有办法访问常量,那么在常量中定义某些东西有什
问题内容: 在通过构造函数传递给匿名类的最终变量中,Jon Skeet提到了变量是通过自动生成的构造函数传递给匿名类实例的。在这种情况下,为什么我看不到使用反射的构造函数: } 输出为: 问题答案: 这是您的程序在我的系统上输出的内容: 因此,构造函数在那里。但是,它是无参数的。从反汇编来看,发生的事情是编译器发现它不需要传递给它,因为它的值在编译时就知道了。 如果我这样更改代码: 现在生成的构造
问题内容: 我有以下代码: 我的预期输出在注释中。实际输出如下: 我对函数调用和增量运算符感到困惑。有人可以解释一下实际结果吗? 问题答案: 首先你需要知道的区别和; 如果是: 首先,将使用当前值,然后将其递增。这意味着您将获得操作的当前值,并且如果您下次使用x将获得递增的值; 如果是: 首先,当前值将增加,然后将使用它(增加的值),这意味着您将在此操作中获得增加的值,而在此操作之后将获得其他值。
问题内容: 我有以下内容: 然后在我的Android活动中,我将这样称呼: 然后我打电话给。但是,我希望不要对其进行硬编码,因此可以将其传递。否则,对于要打印的每个String,我都必须具有这些声明之一。 (这实际上是一个Android问题,但将其简化为基本Java,因此更易于回答) 谢谢 问题答案: final String hello = whereverItsComingFrom; Runn
问题内容: Java常数变量有任何命名约定吗? 通常,我们使用名称包含大写字母和下划线()的变量。 例如: 问题答案: 是。这就对了。它也经常用于。 唯一常见的例外是记录您可能会看到的位置 但是我更喜欢 我通常将其写为UPPER_CASE,但我也为类编写TitleCase,为变量和方法编写camelCase。
问题内容: 来自Sun文档 通常,您需要将代码放在构造函数中以初始化实例变量。 使用构造函数初始化实例变量有两种选择:初始化块和final方法。 我能理解初始化块的用法。谁能解释一下实例初始化方法的最终方法吗?非最终公开赛员可以完成这项工作。为什么不只是使用它们呢? 问题答案: 您链接到的同一Sun教程中已经描述了该优点: 最终方法不能在子类中覆盖。 有关接口和继承的课程将对此进行讨论。 非最终方
问题内容: 我有一些类型的非变量(例如)。问题是:如何获取与变量引用的枚举常量相关的注释? 问题答案: 正如我已经提供的: 要更清楚: 在这种情况下,我们无需知道的真实类。
问题内容: 关于如何从通过调用读取分配给新创建的记录的自动递增身份字段的任何建议? 我知道如何在多个数据库平台的SQL中执行此操作,但是我想知道存在哪些数据库独立接口来执行此操作,以及有关人们在整个数据库平台上的经验的任何输入。 问题答案: 以下代码片段应做ya’: 已知这可用于以下数据库 德比 的MySQL SQL服务器 对于不起作用的数据库(HSQLDB,Oracle,PostgreSQL等)
问题内容: 我在说Java语言。 变量“ this”在类内部使用时,指的是该类的当前实例,这意味着您不能在静态方法中使用“ this”。 但是,“超”在类内部使用时,是指该类的超类,而不是超类的实例,这意味着您可以在静态方法中使用“超”。但是事实证明你做不到。 一个可能的解释是说“超级”也指的是超类的一个实例,但我不知道为什么它应该… 问题答案: 这是JLS中有关关键字的部分: http://do
问题内容: 如果通过创建缓冲区,则该内存将位于Java堆之外。有没有一种方法可以以跨平台的方式测量应用程序中此类内存的使用情况,类似于我可以使用and 来测量Java堆使用情况的方法? 问题答案: 您可以使用反射来获取Java 7的OpenJDK / HotSpot。没有独立于平台的方式,它仅通过ByteBuffer.allocateDirect()向您显示用法,而没有其他分配本地内存的方式。 另
问题内容: 采访中有人问我以下问题: 有什么方法可以仅使用1个变量生成斐波那契数列? 我不知道该怎么回答。我该怎么说? 问题答案: 是的,您可以使用封闭形式的表达式: 哪里 您可以使用a计算表达式并将结果四舍五入到最接近的整数。由于浮点运算的精度有限,因此对于足够大的n,此公式将给出错误的答案,但我认为在结果适合Java 32位整数的情况下,该公式将起作用。
问题内容: 我想获取印度的货币格式,所以我需要一个印度对象。但是只有几个国家的常数(a )为常数,而印度不是其中一个。 要获取美国和英国的货币符号,我可以执行以下操作: 使用常量和。如果我想获取印度货币格式,该怎么办? 问题答案: 根据JDK发行说明,您具有区域代码(印地语)和(英语)。
问题内容: 我读到Java为类属性提供了默认值,但没有为局部变量提供默认值。那是对的吗?如果是这样,背后的原因是什么?当您做某件事时,为什么不一直这样做呢? 谢谢你, 罗杰 问题答案: 标准局部变量存储在堆栈中,直到初始化后才真正创建。如果未使用局部变量,则它不会进入堆栈。但是,成员变量在堆中分配,因此具有默认的占位符(空引用或默认原语)。
问题内容: 以下是我的项目代码的一部分: 我很快意识到,这样做会在Body类中创建 两个 名为x的变量,并在Body中创建 另外 两个名为y的变量。这怎么可能?为什么Java甚至允许它呢? 我认为这是Body类的正确代码: 谢谢你的时间 问题答案: 从某种意义上讲,您正在重写超类的字段。但是意外地做起来容易得多,因为没有字段重载(您只有给定名称的一个变量,类型无关紧要)。这称为变量“隐藏”或“阴影