在Java中说某些东西是“文字变量”是否有意义?

时间:2014-02-06 15:27:09

标签: java variables literals

我正在学习Java课程,并且强烈怀疑我今天参加测验的答案之一可能不正确。问题如下:

String name = "Grizzlies";

以上是 _ _ 变量的示例。

空白有两种选择:class或literal。

我选择了课堂(不情愿地),因为把某些东西称为“文字变量”对我来说根本没有意义。

答案键说“文字变量”是正确的答案。

这在Java中是否有意义?根据我的理解,文字是一个固定的值,表示为自身而不是变量的形式,因此永远不会改变,永远不会被赋值给变量。文字的一些例子包括数字文字,如3.14或字符串文字,如“巴黎圣母院”。

相反,变量被赋予一个值,并且可以并且确实根据其定义而改变。

因此,在我看来,说一些东西是一个“常数变量”就像说法是一个“文字变量”一样荒谬。

任何人都可以验证我的理解是否正确吗?如果我错了,答案的关键是正确的,我的思路在哪里出错?如果我是对的,答案的关键是错的,我应该告诉老师什么?

非常感谢。

4 个答案:

答案 0 :(得分:1)

测验使用的术语令人困惑(我从未听过有人将任何内容称为“文字变量”),但说"Grizzlies""String literal"是正确的。

答案 1 :(得分:0)

Java Strings的二元性有点好。一旦它们是不可变的,它们就是字符串文字,另一方面,变量只是指向这些不可变字符串之一的指针,因此也是变量。

可以称之为“文字变量”,而“指向文字的变量”会更正确,但更长。

答案 2 :(得分:0)

取自Java datatypes

“文字是固定值的源代码表示;文字直接在代码中表示而不需要计算。如下所示,可以将文字分配给基本类型的变量:”

将某个字面变量称为一个奇怪的东西。只需文字或字符串文字在这里更有意义。

答案 3 :(得分:0)

根据JLS

有七种变量。其中之一是类变量。在7种类型中, 没有提到Literal Variables。 :)。其他值得注意的是实例变量,数组组件,方法参数,构造函数参数,异常参数和局部变量。

A class variable is a field declared using the keyword static within a class 
declaration , or with or without the keyword static within an 
interface declaration

现在,由于您的问题中没有定义正文,因此您无法将其归类为本地或类等。

String literals  are references to instances of class String.

所以答案应该是reference变量。