StringBuffer与stringBuilder
全部标签 如果如下代码:Strings="a"+1+"b";//1.使用相当于StringBuilder的方式实现Strings=newStringBuilder().append("a").append(1).append("b");那么会在1中创建额外的对象“a”和“b”,为什么? 最佳答案 您的示例实际上不会使用StringBuilder,因为所有元素都不是变量。因为“a”、1和“b”都是文字,所以编译器将为您生成一个String!但是,如果您在该String串联中包含一个变量,那么它将使用StringBuilder并且需要单独的Str
这样做的动机是我对earlierquestiononStringBuilderbest-practices的回答(“一厢情愿”).如果StringBuilder是可扩展的,那么特定领域的子类可以扩展其流畅的接口(interface),这将加强代码,其中StringBuilder被传递给许多构建更大字符串的部分的方法。我正在考虑向Guava人员提出一些建议-也许是StringBuilder委托(delegate)。与仅具有final方法相反,StringBuilder是final的还有什么其他目的? 最佳答案 如果所有方法都是最终的,
有什么方法可以让我将字符数组存储在StringBuilder中,以避免在执行toString()时创建它的副本。因为,它是一个原始数组,所以它就像深拷贝,我想避免生成这种垃圾。 最佳答案 避免执行stringbuilder.toString().toCharArray(),因为它会分配两次内存。使用类似的东西:char[]charArray=newchar[stringbuilder.length()];stringbuilder.getChars(0,stringbuilder.length(),charArray,0);使用反射
StringBuilder在JAVA中对最大容量有字符数限制吗StringBuilderurl=newStringBuilder();stmt=connnection.createStatement();Stringsql="SOMEQUERY";rs=stmt.executeQuery(sql);while(rs.next()){StringemailId=rs.getString("USER_EMAIL_ID");url.append(emailId);}StringBuilder变量'url'是否有最大容量,还是它可以容纳所有内容? 最佳答案
我正在用Java1.6编写一个webapp并在tomcat中运行它。虽然我没有进行任何显式线程处理,但我想知道Spring和Tomcat在幕后发生了什么。使用StringBuilder而不是StringBuffer会遇到任何问题吗? 最佳答案 如果您使用的是局部变量,则可以安全地使用StringBuilder。每个线程都将获得自己的实例。 关于java-我应该为Web应用程序使用StringBuilder还是StringBuffer?,我们在StackOverflow上找到一个类似的问题
还是我坚持:Strings=newString(newbyte[0],Charset.forName("ISO-8859-1"));//orISO_8859_1,orLATIN-1or...stillnoconstantsforthosefor(Stringstring:strings){//thoseareISO-8959-1encodeds+=string;//hopefullythispreservestheencoding(?)} 最佳答案 Java中的字符串总是UTF-16编码。它们只是char值的序列,它们是UTF-16
我计划对StringBuilders中的最后一个字符执行大量删除操作。使用sb.setLength(sb.length()-1);的解决方案对我来说看起来不错。但是,由于这些删除将处于循环中,我需要知道它的复杂性。我的理解是,此操作只是递减我的StringBuilder对象的一些私有(private)属性,并且不执行任何字符本身的复制/克隆/复制,因此它的时间复杂度为O(1),并且应该可以快速运行。我说得对吗? 最佳答案 如果新长度小于旧长度,则为O(1),在您的情况下。JDK的源码网上有,大家可以自行查看。以Java8为例,set
当我调用这个方法时,我得到了一个javaoutOfMemoryError-我在一个循环中使用它来按顺序解析许多大文件。我的猜测是result.toString()在循环期间没有正确收集垃圾。如果是这样,我该如何解决?privateStringmatchHelper(Stringbuffer,Stringregex,Stringmethod){Patternabbrev_p=Pattern.compile(regex);//normsU.S.A.,B.S.,PH.D,PH.D.Matcherabbrev_matcher=abbrev_p.matcher(buffer);StringBuf
我知道StringBuffer和StringBuilder的区别。readhere!一般来说,正如javadoc所说,Wherepossible,itisrecommendedthatthisclassbeusedinpreferencetoStringBufferasitwillbefasterundermostimplementations.但是,StringBuilder的javadoc也说:InstancesofStringBuilderarenotsafeforusebymultiplethreads.Ifsuchsynchronizationisrequiredthenit
我想知道比较MessageFormat或StringBuilder类。举个例子,我有一个字符串。对于性能明智的哪一个是快速的:java.text.MessageFormat.format或StringBuilder("Test").append("Hello")?Stringtxt=java.text.MessageFormat.format("Test{0}","Hello")Stringtxt1=newStringBuilder("Test").append("Hello")我只想知道在最佳实践或性能方面使用哪个 最佳答案 自己