当方法返回一个对象时,该方法是否会自动创建一个新实例 记忆中的那个对象?
例如:
在Java
BigInteger
class
中,我使用num1
的加法方法,num2
,BigIntegers
。{ / p>
num1.add(num2);
然后我用与以下相同的类型引用它:
BigInteger a = num1.add(num2);
这样可以获得正确的数据。那么该方法将在堆栈上创建该对象的new instance
?
确保我对自己的假设是正确的。
感谢。
答案 0 :(得分:1)
bigInteger.add()会返回一个新实例,但不是所有方法都会这样做。
通常会返回您可能经常遇到的新对象实例:
BigInteger
' add method says that it returns a BigInteger,不会说new BigInteger
,但鉴于docs also state that BigInteger is immutable,您可以知道它{&}没有通过修改返回this
对象,所以很可能它是一个新对象(我想它可能是已经代表该状态的一些缓存对象,但即使它是,你对BigInteger的使用不会改变。)。
答案 1 :(得分:1)
取决于。
使用BigInteger示例,它将返回该对象的新实例。
但是使用像StringBuilder这样的东西,你可以做到
stringBuilder.append("this").append("is").append("a").append("string");
并且每个.append(String)返回相同的原始对象,它只允许您将调用链接在一起。