stringbuilder相关内容
在我的应用中,我以JSON的形式从服务器获取数据.数据约为1.5 MB.该应用程序可以运行,但是有时在从服务器中获取数据时会崩溃,并给出OutOfMemoryError信息. 这是我的方法: private String sendPostRequest(String url, List params) throws Exception {
..
我知道在最近的Java版本中,字符串串联 String test = one + "two"+ three; 将被优化为使用StringBuilder. 但是,每次到达此行时,都会生成新的StringBuilder还是会生成单个线程本地StringBuilder,然后将其用于所有字符串连接? 换句话说,我可以通过创建自己的线程本地StringBuilder进行重用来提高经常调
..
如果string操作没有更改string的值,那将最终创建一个新实例吗? 例如, string str = "foo"; str += ""; 我知道C#中的string和StringBuilder之间的区别. 解决方案 否,仅当字符串操作更改字符串变量中的值时,才会创建新实例. 可以使用using System; using System.Text; using S
..
我在日志文件中遇到了以下异常情况. System.ArgumentOutOfRangeException:索引超出范围.必须为非负数并且小于集合的大小.参数名称:System.Text.StringBuilder.ToString() 处的chunkLength 我相信这是因为字符串生成器不是线程安全的.但是我迷失了如何使我的字符串生成器在下面的递归函数中安全运行. public
..
我已经阅读了一些有关Java编程语言中String和StringBuilder优缺点的文章.在其中一篇文章中,作者提到: StringBuilder 不是线程安全,因此在多线程中使用 StringBuffer . 不幸的是,我不明白这意味着什么.您能否解释一下String,StringBuilder和StringBuffer之间的区别,尤其是在“线程安全"的情况下. 如果您能用代
..
进行字符串连接需要多少个存储位置? String myStringVariable = "Hello"; 在以下两个语句中: String s = "ABC" + "Hello" + "DEF"; 和 String s = "ABC"; s = s + "Hello"; s = s + "DEF"; 和 String s = "ABC" + myStringVa
..
我正在写很多东西来登录突发,并优化数据路径.我使用StringBuilder构建日志文本.从内存管理角度来看,最有效的初始容量是什么,因此不管使用JVM,它都能正常工作吗?目标是几乎总是避免重新分配,这应该由大约80-100的初始容量覆盖.但是我也想浪费尽可能少的字节,因为StringBuilder实例可能会在缓冲区中徘徊,浪费的字节会大量出现. 我意识到这取决于JVM,但是应该有一些值,这
..
首先,我对使用StringBuilder类感到困惑: string对象的串联操作始终根据现有的string和新数据创建一个新对象. StringBuilder对象维护一个缓冲区,以容纳新数据的串联.如果有可用空间,则将新数据附加到缓冲区的末尾;否则,将分配一个更大的新缓冲区,将原始缓冲区中的数据复制到新缓冲区中,然后将新数据附加到新缓冲区中. 但是创建StringBuilder实例以避
..
我需要写10,000 x 30,000个字符.单个stringbuilder能否兼容所有字符,还是我应该考虑一个stringbuilder数组?我没有访问测试用例的权限,因此我无法亲自验证它.希望我能在这里找到答案. 谢谢. 编辑: 我尝试使用循环添加10000 x 30000个字符.我遇到以下异常. Exception in thread "main" java.lang
..
我试图用LINQ将List中的项目附加到StringBuilder中: items.Select(i => sb.Append(i + ",")); 我在此处找到了类似的问题解释了为什么上述方法不起作用,但是我找不到Each的Each或List上的任何类似内容,我可以代替使用. 是否有一种简单的方法可以做到这一点? 解决方案 您可以使用简单的foreach循
..
我有一个String数组,我想通过LINQ添加到字符串生成器中. 我基本上要说的是“对于此数组中的每个项目,在此StringBuilder后面添加一行". 我可以使用foreach循环很容易地做到这一点,但是下面的代码似乎什么也没做.我想念什么? stringArray.Select(x => stringBuilder.AppendLine(x)); 在什么地方起作用:
..
在Java中,遵循代码是一种实现方法. StringBuilder result = new StringBuilder(); result.append(someChar); result.append("\n"); 在Kotlin中做这件事的更好方法吗? 解决方案 Kotlin 1.3+提供了扩展功能可简化任务. 用法: val strBuilder = Stri
..
以下 Jsoup 代码将容器els中所有元素的文本: for (Element el : els) entireText += el.text(); 在具有〜64个元素的容器中,每个元素包含〜1KB(totalText总计为〜64KB),在典型的低端Android手机上,此简单循环大约需要 8秒. 这种缓慢的性能使我感到惊讶,因为我印象中Java编译器将A
..
嗨,我试图在分割字符串生成器并打印该字符串生成器后让我看我的代码,以进行打印, string.append("Memomry usage:total:"+totalMemory/1024/1024+ "Mb-used:"+usageMemory/1024/1024+ " Mb("+Percentage+"%)-free:"+freeMemory/1024/1024+ " Mb("+Perce
..
我试图用Swing和AWT组件创建一个可调整大小的窗口,该窗口以金字塔的方式显示数字,具体取决于帧的大小,但是我真的不知道从哪里开始.我不确定是否应该使用JLabel或StringBuilder.如果可以在不使用动作侦听器的情况下完成此操作,那将是首选.我需要一些帮助. 解决方案 我只是创建一个专用面板并覆盖方法paintComponent.然后使用FontMetrics和该面板的大小,我
..
我看到一些代码项目解决方案。 但JavaScript中是否有常规实现? 解决方案 如果必须编写代码Internet Explorer确保您选择了一个使用数组连接的实现。使用 + 或 + = 运算符连接字符串在IE上非常慢。对于IE6尤其如此。在现代浏览器上 + = 通常和数组连接一样快。 当我需要做大量的字符串时连接我通常填充数组而不使用字符串构建器类: var htm
..
今天我正在阅读 Antonio关于toString的博客()性能并且有一段: 昨天曾经被认为是邪恶的(“不要用+ !!连接字符串! !“),变得冷静和高效! 今天,JVM将+符号编译为字符串构建器(在大多数情况下)。所以,不要犹豫,使用它。 现在我很困惑,因为他说今天JVM将+符号编译成字符串构建器(在大多数情况下) ),但我以前从未听过或看过(代码)这样的事情。 有人可以举
..
在应用程序中,String是常用的数据类型。我们所知道的是,String的变异会占用大量内存。所以我们可以做的是使用StringBuilder / StringBuffer。 但是我们应该在什么时候更改为StringBuilder? 我们应该做什么,当我们必须拆分它或重新设置那里的字符时? 例如: // original: String [] split = strin
..
根据KathySierra的SCJP学习指南: java.lang.StringBuffer和java.lang当你必须修改字符串时,.stringBuilder类应该使用 。 正如我们所讨论的,String对象是不可变的,因此如果你选择使用String对象进行大量的操作,你将在String池中获得大量 的废弃String对象 为了清除这一点,我已经完成了String类和Stri
..
在JDK 8中, StringBuffer 类有一个 toStringCache ,而 StringBuilder 没有。 / ** * toString返回的最后一个值的缓存。每当StringBuffer被修改时清除 *。 * / private transient char [] toStringCache; 但为什么? 我能想到的一
..