当一个方法返回一个对象时,该方法是否会自动创建一个新的实例 内存中的那个对象?
例如:
在 Java
BigInteger
class
中,我使用 add 方法,其中 num1
和 num2
,可以说,是BigIntegers
。
num1.add(num2);
然后我通过与以下相同的类型引用它:
BigInteger a = num1.add(num2);
这可以工作并获取正确的数据。那么该方法将在堆栈上创建该对象的新实例
?
只是确保我的假设是正确的。
谢谢。
最佳答案
bigInteger.add() 确实返回一个新实例,但并非所有方法都会返回。
通常返回您可能经常遇到的新对象实例的是:
- 构造函数
- 工厂/建筑商
- 对不可变对象(immutable对象)进行操作的方法
BigInteger
的 add method says that it returns a BigInteger ,并没有说一个new BigInteger
,但考虑到 docs also state that BigInteger is immutable ,那么你可以知道它没有返回经过修改的 this
对象,因此它很可能是一个新对象(我认为可能是某个已经代表该状态的缓存对象,但即使它是,您对 BigInteger 的使用不会改变。)。
关于java - 方法创建新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22566125/