Created
June 26, 2016 01:49
-
-
Save leizhiyuan/74e1614f635a7326708f7c306d68a7ff to your computer and use it in GitHub Desktop.
重用的StringBuilder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.springside.modules.utils; | |
/** | |
* 参考BigDecimal, 可重用的StringBuilder, 节约StringBuilder内部的char[] | |
* | |
* 参考下面的示例代码将其保存为ThreadLocal. | |
* | |
* <pre> | |
* private static final ThreadLocal<StringBuilderHelper> threadLocalStringBuilderHolder = new ThreadLocal<StringBuilderHelper>() { | |
* @Override | |
* protected StringBuilderHelper initialValue() { | |
* return new StringBuilderHelper(256); | |
* } | |
* }; | |
* | |
* StringBuilder sb = threadLocalStringBuilderHolder.get().resetAndGetStringBuilder(); | |
* | |
* </pre> | |
* | |
* @author calvin | |
* | |
*/ | |
public class StringBuilderHolder { | |
private final StringBuilder sb; | |
public StringBuilderHolder(int capacity) { | |
sb = new StringBuilder(capacity); | |
} | |
/** | |
* 重置StringBuilder内部的writerIndex, 而char[]保留不动. | |
*/ | |
public StringBuilder resetAndGetStringBuilder() { | |
sb.setLength(0); | |
return sb; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment