Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 变量类型与值类型相同吗?_Java_Variables_Int - Fatal编程技术网

Java 变量类型与值类型相同吗?

Java 变量类型与值类型相同吗?,java,variables,int,Java,Variables,Int,如果我写: int x = 7; 我们能否得出结论,7的值类型是int,因此x的类型也是int “int”在这里表示什么?值是int还是7是int?int表示x。它指示变量x的类型。这也是存储在那个里的值类型的信息 int x =7; 由两部分组成。 一是: 在这个范围中将x声明为int。这表明int指的是x。 表达式的另一部分是: x=7; 这实际上是将int值7赋给x。当然,赋值必须是有效的。因此该值应该是合适的类型。 在程序中省略赋值也是有效的(例如,如果不使用此变量)

如果我写:

int x = 7;

我们能否得出结论,7的值类型是int,因此x的类型也是int


“int”在这里表示什么?值是int还是7是int?

int表示x。它指示变量x的类型。这也是存储在那个里的值类型的信息

  int x =7;
由两部分组成。 一是:

在这个范围中将x声明为int。这表明int指的是x。 表达式的另一部分是:

     x=7;
这实际上是将int值7赋给x。当然,赋值必须是有效的。因此该值应该是合适的类型。 在程序中省略赋值也是有效的(例如,如果不使用此变量) 另一方面,您不能忽略声明,因为java是强类型的。 例如写作:

y=8;
除非声明y,否则不会提供足够的信息。 例如,y可以是int、整数、long或long。
y是什么取决于它的声明

int指的是x。它指示变量x的类型。这也是存储在那个里的值类型的信息

  int x =7;
由两部分组成。 一是:

在这个范围中将x声明为int。这表明int指的是x。 表达式的另一部分是:

     x=7;
这实际上是将int值7赋给x。当然,赋值必须是有效的。因此该值应该是合适的类型。 在程序中省略赋值也是有效的(例如,如果不使用此变量) 另一方面,您不能忽略声明,因为java是强类型的。 例如写作:

y=8;
除非声明y,否则不会提供足够的信息。 例如,y可以是int、整数、long或long。
y是什么取决于它的声明

表示变量
x
的类型为
int

表达式
7
的类型也恰好是
int
,因此示例并不那么有趣

考虑一个更有趣的例子:

List<String> myList = new ArrayList<>();
它将自动推断
myList
List[String]
类型的变量

但这往往会导致不必要的结果。例如,给定任务

var myList = List.empty
Scala编译器会很高兴地推断,右边是一个
列表[Nothing]
,其中
Nothing
是一种特殊类型,表示抛出异常和错误“返回”的荒谬的不可能结果,这些异常和错误破坏了正常的程序流。不能使用此变量执行任何操作。为了使该变量有用,我们必须编写:

var myList: List[String] = List.empty

现在Scala编译器会理解,
myList
应该是
List[String]
,这比从右边推断的类型更一般。如您所见:现在您在左侧有了
val
关键字和一个额外的
List[String]
-类型声明,它不一定比相应的Java版本短很多。它实际上更长,尽管有各种各样的奇幻推理魔法。所以,Java的变量声明语法是。。。好的,至少要做得更好不是件小事。

它表明变量
x
的类型是
int

表达式
7
的类型也恰好是
int
,因此示例并不那么有趣

考虑一个更有趣的例子:

List<String> myList = new ArrayList<>();
它将自动推断
myList
List[String]
类型的变量

但这往往会导致不必要的结果。例如,给定任务

var myList = List.empty
Scala编译器会很高兴地推断,右边是一个
列表[Nothing]
,其中
Nothing
是一种特殊类型,表示抛出异常和错误“返回”的荒谬的不可能结果,这些异常和错误破坏了正常的程序流。不能使用此变量执行任何操作。为了使该变量有用,我们必须编写:

var myList: List[String] = List.empty

现在Scala编译器会理解,
myList
应该是
List[String]
,这比从右边推断的类型更一般。如您所见:现在您在左侧有了
val
关键字和一个额外的
List[String]
-类型声明,它不一定比相应的Java版本短很多。它实际上更长,尽管有各种各样的奇幻推理魔法。所以,Java的变量声明语法是。。。好的,至少让它变得更好不是小事。

“我们可以得出结论,7的值类型是int,因此x的类型也是int吗?”不,例如,
x
的类型可能是
长的
。“这里的‘int’表示什么?”类型为
x
…我们可以断定
7
int
文字,因为JLS说它是。
long
literal是用字母“l”后缀编写的。因此,当我们编写int x=7时,我们实际上只是将变量标记为int correct?您声明了一个变量,并明确告诉编译器它的类型是
int
@Allan,Java源代码中的表达式
7
的类型是
int
。这是JLS中定义的。它可以显式地转换为其他几种类型,并显式地使用强制转换和方法调用来转换更多的类型。“我们能否得出结论,7的值类型是int,因此x的类型也是int?”不,例如,
x
的类型可以是
long
。“这里的‘int’表示什么?”类型为
x
…我们可以断定
7
int
文字,因为JLS说它是。
long
literal是用字母“l”后缀编写的。因此,当我们编写int x=7时,我们实际上只是将变量标记为int correct?您声明了一个变量,并明确地告诉编译器它的类型是
int