[英]Method Creates new instance
当方法返回一个对象时,该方法是否会在内存中自动创建该对象的新实例?
例如:
在Java
BigInteger
class
,我使用add方法,其中num1
和num2
就是BigIntegers
。
num1.add(num2);
然后我用与以下相同的类型引用它:
BigInteger a = num1.add(num2);
这有效并获得正确的数据。 那么该方法将在堆栈上创建该对象的new instance
?
只是确保我对我的假设是正确的。
谢谢。
bigInteger.add()确实返回一个新实例,但并非所有方法都返回。
通常返回您可能经常遇到的新对象实例的是:
BigInteger
的add方法说它返回一个BigInteger ,并没有说new BigInteger
,但是假设文档还声明BigInteger是不可变的 ,那么你可以知道它没有通过修改返回this
对象,所以很有可能它是一个新对象(我想它可能是已经代表该状态的一些缓存对象,但即使它是,你对BigInteger的使用也不会改变。)。
这取决于。
使用BigInteger示例,它将返回对象的新实例。
但是使用像StringBuilder这样的东西,你可以做到
stringBuilder.append("this").append("is").append("a").append("string");
并且每个.append(String)返回相同的原始对象,它只允许您将调用链接在一起。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.