簡體   English   中英

Java - 使用String而不是StringBuilder的StringBuilder

[英]Java — StringBuilder using String & not StringBuilder

我在我的代碼中使用StringBuilder而不是String ,以便在所有解析和連接期間使代碼節省時間。

但是當我查看它的源代碼時, AbstractStringBuildersubstring()方法以及StringBuilder返回的是String而不是StringBuilder

這背后會有什么想法?

謝謝。

substring方法返回不可變String的原因是,一旦你在StringBuilder獲得了一部分字符串,它就必須復制。 它不能給你一個可變的“實時視圖”到StringBuilder的內容中間,因為否則你會遇到沖突,其中的變化適用於什么字符串。

因為無論如何都要制作副本,所以它也可能是不可變的:如果你希望通過在它周圍構建一個StringBuilder ,你可以很容易地使它變得可變,同時充分理解它與可變原始分離。

要從一個StringBuilder轉到另一個包含原始段的另一個,您可以使用:

StringBuilder original = ...;
StringBuilder sub = new StringBuilder().append(original, offset, length);

可以作為original方法提供,但事實並非如此。

除此之外,您應該在進行此類微優化之前對代碼進行概要分析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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