[英]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.