草庐IT

stringbuffer

全部标签

java - StringBuffer 和字符串池

给定以下代码:StringBufferstr2=newStringBuffer("Idon't");StringBufferstr3=str2.append("getit.");if(str2==str3){System.out.println("Equal");}我的讲师说,在这种情况下str2和str3将引用同一个对象并且字符串“Idon'tgetit”将被插入到“Stringpool”中。我想我明白为什么str2和str3现在将引用同一个对象,但为什么字符串“我不明白”。str3赋值发生时进入字符串池?例如,如果我这样做:Strings="abcd";然后我知道现在字符串“abc

java - 我应该为 Web 应用程序使用 StringBuilder 还是 StringBuffer?

我正在用Java1.6编写一个webapp并在tomcat中运行它。虽然我没有进行任何显式线程处理,但我想知道Spring和Tomcat在幕后发生了什么。使用StringBuilder而不是StringBuffer会遇到任何问题吗? 最佳答案 如果您使用的是局部变量,则可以安全地使用StringBuilder。每个线程都将获得自己的实例。 关于java-我应该为Web应用程序使用StringBuilder还是StringBuffer?,我们在StackOverflow上找到一个类似的问题

java - 想象一个真实的并发场景,应该使用StringBuffer而不是StringBuilder?

我知道StringBuffer和StringBuilder的区别。readhere!一般来说,正如javadoc所说,Wherepossible,itisrecommendedthatthisclassbeusedinpreferencetoStringBufferasitwillbefasterundermostimplementations.但是,StringBuilder的javadoc也说:InstancesofStringBuilderarenotsafeforusebymultiplethreads.Ifsuchsynchronizationisrequiredthenit

Java:StringBuffer 和串联

我在Java中使用StringBuffer将字符串连接在一起,如下所示:StringBufferstr=newStringBuffer();str.append("stringvalue");我想知道是否有一种方法(虽然我没有通过快速浏览文档找到任何东西)或其他一些方法来添加“填充”。让我解释一下;每次我向字符串附加一些内容时,我想在末尾添加一个空格,如下所示:Stringfoo="stringvalue";str.append(foo+"");我有好几次追加电话……每次,我都想添加一个空格。有没有办法设置对象,使其在每次追加后自动添加一个空格?编辑——StringinputStrin

java - "StringBuilders are not thread-safe"是什么意思?

我阅读了一些有关Java编程语言中String和StringBuilder优缺点的文章。在其中一篇文章中,作者提到:StringBuilderisnotThread-safe,soinmultiplethreadsuseStringBuffer.很遗憾,我无法理解这意味着什么。您能否解释一下String、StringBuilder和StringBuffer之间的区别,尤其是在“线程安全”的上下文中。如果您能用代码示例进行描述,我将不胜感激。 最佳答案 如果多个线程正在修改StringBuilder的同一个实例,结果可能会出乎意料-即

java - StringBuffer 与 StringBuilder 与 StringTokenizer

StringBuffervsStringBuilderVsStringTokenizer在内部实现上有什么区别。什么时候使用这些。敬请期待答案。更新:-我也在浏览源代码。 最佳答案 StringBuffer-在JDK1.0中引入-是线程安全的(它的所有方法都是同步),而StringBuilder-自JDK1.5-不是。所以一般情况下推荐使用后者。StringTokenizer的目的与前两者完全不同:将字符串切割成片段,而不是组装。正如@Henning指出的那样,它从JDK1.5开始也“退休”了——建议改用String.split。

java - 为什么不让 StringBuilder 和 StringBuffer 实现一个公共(public)接口(interface)呢?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。StringBuilder之间的差异和StringBuffer在Java中有据可查,并且已被toucheduponinStackOverflow基本上,StringBuilder是StringBuffer的非同步副本,具有几乎相同的接口(interface),因为它旨在作为的快速替代品字符串缓冲区。它们的API实际上是相同的,它们实际上是当前JDK中相同

java - 自定义日志记录以在运行时收集消息

有没有办法在运行时创建一个log4j记录器,将日志消息收集到缓冲区中?我目前有一个记录大量事件的类。对于需要监视记录事件的远程应用程序,我只想交换记录到缓冲区的记录器,然后检索缓冲区,而不是重构类。例如。给出类似的东西:ClassFoo{Loggerlog=....;publicvoiddoSomething(){log.debug(.....actualcodelog.debug(...}}//我想从一些外部代码做什么:StringshowFooLog(){Foof=newFoo();f.log=newLogger(...f.doSomething();returnf.log.con

将文件读取到 byte[] 数组时出现 java.lang.OutOfMemoryError

有没有一种更干净、更快速的方法来做到这一点:BufferedReaderinputReader=newBufferedReader(newInputStreamReader(context.openFileInput("data.txt")));StringinputString;StringBuilderstringBuffer=newStringBuilder();while((inputString=inputReader.readLine())!=null){stringBuffer.append(inputString+"\n");}text=stringBuffer.toS

java - 如何在数组末尾添加一个元素?

我想知道如何在数组末尾添加或追加一个新元素。有什么简单的方法可以在最后添加元素吗?我知道如何使用StringBuffer但我不知道如何使用它在数组中添加元素。我更喜欢没有ArrayList或列表的它。我想知道StringBuffer是否适用于整数。 最佳答案 您不能向数组添加元素,因为在Java中,数组是固定长度的。但是,您可以使用Arrays.copyOf(array,size)从现有数组构建一个新数组:publicstaticvoidmain(String[]args){int[]array=newint[]{1,2,3};Sy