gpt4 book ai didi

java - 如果你不引用它,Java 中的对象会发生什么,就像这里的 : myString. concat ("that")

转载 作者:搜寻专家 更新时间:2023-11-01 01:56:43 24 4
gpt4 key购买 nike

String myString = "this";
//string is immutable

myString.concat(" that");
//a new object is created but not assigned to anything

System.out.println(myString); //prints out "this"

我更喜欢编译时错误 - 为什么不是这样?当在不提供返回类型的情况下调用时,同样的问题可以应用于任何具有返回类型的方法。

public myObject doStuff(...whatever){
//define my method
return anObject;
}

可以在不提供引用/变量来保存返回类型的情况下调用:

MyObject newObject = doStuff(); //works
doStuff(); //works too without assigning return object

最佳答案

该对象将被创建并立即符合垃圾回收条件(即它可能很快就会被垃圾回收)。

这不是编译时错误的原因是并非每个返回方法的方法都要求您使用该返回值。有些方法只是因为它们的副作用而被调用。

一个很好的例子是 Collection.add() : 它返回一个 boolean 对象,但通常情况下,调用代码对该结果不感兴趣并简单地忽略它。

同样StringBuilder.append()返回 StringBuilder 实例,以便您可以链接调用。但忽略该返回值并简单地使用 myStringBuilder.append("foo"); 也是完全有效的。

关于java - 如果你不引用它,Java 中的对象会发生什么,就像这里的 : myString. concat ("that"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7281160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com