我正在学习Java课程,并且强烈怀疑我今天参加测验的答案之一可能不正确。问题如下:
String name = "Grizzlies";
以上是 _ _ 变量的示例。
空白有两种选择:class或literal。
我选择了课堂(不情愿地),因为把某些东西称为“文字变量”对我来说根本没有意义。
答案键说“文字变量”是正确的答案。
这在Java中是否有意义?根据我的理解,文字是一个固定的值,表示为自身而不是变量的形式,因此永远不会改变,永远不会被赋值给变量。文字的一些例子包括数字文字,如3.14或字符串文字,如“巴黎圣母院”。
相反,变量被赋予一个值,并且可以并且确实根据其定义而改变。
因此,在我看来,说一些东西是一个“常数变量”就像说法是一个“文字变量”一样荒谬。
任何人都可以验证我的理解是否正确吗?如果我错了,答案的关键是正确的,我的思路在哪里出错?如果我是对的,答案的关键是错的,我应该告诉老师什么?
非常感谢。
答案 0 :(得分:1)
测验使用的术语令人困惑(我从未听过有人将任何内容称为“文字变量”),但说"Grizzlies"
是"String literal"是正确的。
答案 1 :(得分:0)
Java Strings的二元性有点好。一旦它们是不可变的,它们就是字符串文字,另一方面,变量只是指向这些不可变字符串之一的指针,因此也是变量。
可以称之为“文字变量”,而“指向文字的变量”会更正确,但更长。
答案 2 :(得分:0)
“文字是固定值的源代码表示;文字直接在代码中表示而不需要计算。如下所示,可以将文字分配给基本类型的变量:”
将某个字面变量称为一个奇怪的东西。只需文字或字符串文字在这里更有意义。
答案 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
变量。