所以,我想知道这之间有什么区别:
first = "Hello!"
和:
String first = "Hello!"
前者分配给已声明的变量;后者声明并分配一个变量。
我不这么认为:
first="Hello!"
将编译,因为编译器会抛出错误,询问 first 的类型。Java 是一种强类型语言——每个变量都需要一个明确定义的类型。我暂时忽略了像 E 这样的泛型类型......
不太确定你在问什么。在你的第一个例子中:first = "Hello!"
你没有声明first
,所以如果你只运行那行代码,它将不起作用。假设您声明first
为字符串,那么两个示例都是相同的。并且没有string
像int
and那样的原始类型Integer
。字符串始终是一个对象。
first = "Hello!"
不会正确编译,因为它没有类型。在 Java 中,当您创建一个变量(在本例中称为“first”)时,您必须给它一个类型,例如 String、int、long 等等。因为没有给出类型,所以它不知道该怎么做。所以,当你创建变量时,你必须使用String first = "Hello!"
当变量已经声明时,您不需要提供类型。例如,
String first = "Hello!"
first = "Goodbye!"
现在首先是“再见!”
乍一看,除了第一个变量在另一行声明可能是实例变量之外,没有其他区别?
在内存中,字符串正在池中,所以应该是这样。