簡體   English   中英

方法創建新實例

[英]Method Creates new instance

當方法返回一個對象時,該方法是否會在內存中自動創建該對象的新實例?

例如:

Java BigInteger class ,我使用add方法,其中num1num2就是BigIntegers

num1.add(num2);

然后我用與以下相同的類型引用它:

BigInteger a = num1.add(num2);

這有效並獲得正確的數據。 那么該方法將在堆棧上創建該對象的new instance

只是確保我對我的假設是正確的。

謝謝。

bigInteger.add()確實返回一個新實例,但並非所有方法都返回。

通常返回您可能經常遇到的新對象實例的是:

  • 構造函數
  • 廠區/建築工地
  • 對不可變對象進行操作的方法

BigIntegeradd方法說它返回一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM