草庐IT

StringBuffer与stringBuilder

全部标签

Java StringBuilder(StringBuffer) 的 ensureCapacity() : Why is it doubled and incremented by 2?

我已经对此进行了搜索,但我找不到为什么StringBuilder的ensureCapacity()方法不会通过仅加倍加二来延长旧容量。所以,当默认容量16已满时,除非整个字符串长度不超过34,否则下一个加长值将是34。为什么不应该是32?我最好的猜测是考虑一个空字符'\u0000',但我不确定。谁能告诉我为什么? 最佳答案 我相信这与一种简单但有点愚蠢的方法有关,以确保非常小的字符串的角盒。例如,如果我有字符串""我只是把它翻倍,我没有足够的大小来存放其他任何东西。如果我将它加倍并添加少量恒定的空格,我可以确保我的新值大于旧值。那为

java - 如何修剪 StringBuilder 字符串?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.我们如何修剪StringBuilder值而不产生使用StringBuilder.toString().trim()导致的开销,从而创建一个新的String和/或每个修剪调用的新StringBuilder实例? 最佳答案 WhydoesStringBuilderdon'thavetrim()meth

java - 如何修剪 StringBuilder 字符串?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.我们如何修剪StringBuilder值而不产生使用StringBuilder.toString().trim()导致的开销,从而创建一个新的String和/或每个修剪调用的新StringBuilder实例? 最佳答案 WhydoesStringBuilderdon'thavetrim()meth

String类的学习笔记(下):字符串拼接以及StringBuilder和StringBuffer的学习

本文介绍了String类对字符串进行拼接的方法和拼接字符串的效率分析以及能对字符串内容进行修改的StringBuilder和StringBuffer类其常用方法和区别,最后介绍了两个字符串经典面试题StringBuilder和StringBuffer的学习一.String类概括二.StringBuilder和StringBuffer1.字符串拼接2.StringBuilder和StringBuffer常用方法和区别3.面试题:以下代码共创建多少个对象?4.面试题:String、StringBuilder和StringBuffer的异同三.总结一.String类概括1.String常用方法学习-

java - 如果编译器自动将字符串连接转换为 StringBuilder,为什么要显式使用 StringBuilder?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:StringBuildervsStringconcatenationintoString()inJava我想知道,由于编译器在执行字符串连接时在内部使用StringBuilder来附加字符串,那么如果字符串连接已经为您完成了这项工作,那么有什么意义?为什么还要使用StringBuilder呢?还有其他具体原因吗? 最佳答案 正如您所提到的,您不应使用StringBuilder来代替简单的字符串连接表达式,例如a+"="+b。后者打字速度更快,更容易阅读,而

java - 如果编译器自动将字符串连接转换为 StringBuilder,为什么要显式使用 StringBuilder?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:StringBuildervsStringconcatenationintoString()inJava我想知道,由于编译器在执行字符串连接时在内部使用StringBuilder来附加字符串,那么如果字符串连接已经为您完成了这项工作,那么有什么意义?为什么还要使用StringBuilder呢?还有其他具体原因吗? 最佳答案 正如您所提到的,您不应使用StringBuilder来代替简单的字符串连接表达式,例如a+"="+b。后者打字速度更快,更容易阅读,而

java - StringBuilder/StringBuffer 与 "+"运算符

我正在阅读“Better,Faster,LighterJava”(作者BruceTate和JustinGehtland)并且熟悉敏捷类型团队的可读性要求,例如RobertMartin在他的干净的编码书籍。在我现在所在的团队中,我被明确告知不要使用+运算符,因为它会在运行时创建额外的(和不必要的)字符串对象。但是这个article,写回'04谈论对象分配是如何大约10条机器指令。(基本上免费)它还谈到了GC如何在这种环境中帮助降低成本。使用+、StringBuilder或StringBuffer之间的实际性能权衡是什么?(在我的例子中,它是StringBuffer,因为我们仅限于Java

java - StringBuilder/StringBuffer 与 "+"运算符

我正在阅读“Better,Faster,LighterJava”(作者BruceTate和JustinGehtland)并且熟悉敏捷类型团队的可读性要求,例如RobertMartin在他的干净的编码书籍。在我现在所在的团队中,我被明确告知不要使用+运算符,因为它会在运行时创建额外的(和不必要的)字符串对象。但是这个article,写回'04谈论对象分配是如何大约10条机器指令。(基本上免费)它还谈到了GC如何在这种环境中帮助降低成本。使用+、StringBuilder或StringBuffer之间的实际性能权衡是什么?(在我的例子中,它是StringBuffer,因为我们仅限于Java

java - 将 Java StringBuilder 转储到文件

将StringBuilder转储到文本文件的最有效/优雅的方法是什么?你可以这样做:outputStream.write(stringBuilder.toString().getBytes());但这对于非常长的文件是否有效?有没有更好的办法? 最佳答案 正如其他人指出的那样,使用Writer,并使用BufferedWriter,但不要调用writer.write(stringBuilder.toString());而只是writer.append(stringBuilder);.编辑:但是,我看到您接受了不同的答案,因为它是单行的

java - 将 Java StringBuilder 转储到文件

将StringBuilder转储到文本文件的最有效/优雅的方法是什么?你可以这样做:outputStream.write(stringBuilder.toString().getBytes());但这对于非常长的文件是否有效?有没有更好的办法? 最佳答案 正如其他人指出的那样,使用Writer,并使用BufferedWriter,但不要调用writer.write(stringBuilder.toString());而只是writer.append(stringBuilder);.编辑:但是,我看到您接受了不同的答案,因为它是单行的