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