当前位置: 首页 > 编程笔记 >

我们如何比较Java中的StringBuilder和StringBuffer?

狄海
2023-03-14
本文向大家介绍我们如何比较Java中的StringBuilder和StringBuffer?,包括了我们如何比较Java中的StringBuilder和StringBuffer?的使用技巧和注意事项,需要的朋友参考一下

StringBuffer的 对象通常是安全的使用多线程环境中多个线程可能试图访问同一StringBuffer的 同时对象。该StringBuilder的 是用于替换线程安全StringBuffe [R类和它的作品多,因为它已经没有更快的同步 方法。如果我们在单个线程中执行大量的String操作,则使用此类时可以获得很多性能 

示例

public class CompareBuilderwithBufferTest {
   public static void main(String []args) {      stringBufferTest();
      stringBuilderTest();   }
   public static void stringBufferTest() {
      long startTime = System.nanoTime();
      StringBuffer sb = new StringBuffer();
      for (int i=0; i < 1000; i++) {
         sb.append((char) 'a');
      }
      System.out.println("StringBuffer test: " + (System.nanoTime() - startTime));
   }
   public static void stringBuilderTest() {
      long startTime = System.nanoTime();
      StringBuilder sb = new StringBuilder();
      for (int i=0; i < 1000; i++) {
         sb.append((char) 'a');
      }
      System.out.println("StringBuilder test: " + (System.nanoTime() - startTime));
   }
}

输出结果

StringBuffer test: 192595
StringBuilder test: 85733
 类似资料:
  • 问题内容: 我试图制作一个随机的颜色生成器,但我不希望在arrayList中显示类似的颜色 我真的很困惑,请帮助:) 问题答案: 在Color类中实现相似方法。 然后使用: 要实现likeTo: 看一下RGBA颜色空间中的颜色相似度/距离,并以编程方式找到相似的颜色。一种简单的方法可以是: ((r2-r1)2 +(g2-g1)2 +(b2-b1)2)1/2 和: 但是,您应该根据类似的想象找到X。

  • 我基本上是在寻找一个单元测试框架,我可以用它来比较不重写equals和hascode方法的POJO。我看了一下JUnit、Test NG和Mockito,但它们似乎没有解决这个问题。

  • 本文向大家介绍我们如何在Java中使字符串比较不区分大小写?,包括了我们如何在Java中使字符串比较不区分大小写?的使用技巧和注意事项,需要的朋友参考一下 我们可以通过各种方式比较Java中的字符串- 使用方法-的的compareTo()方法两个字符串按字典顺序进行比较。比较是基于字符串中每个字符的Unicode值。在字典上比较此String对象表示的字符序列与自变量字符串表示的字符序列。 示例

  • 我有一个枚举< code>Foo 下面我正在尝试检查我的枚举中是否包含字符串。 当我发送或for 时,这是有效的。当我发送<code>第一个</code>或<code>第二个</code>给<code>fooStr</code>时,如何使它工作?

  • 问题内容: 到目前为止,我一直在程序中使用运算符比较所有字符串。但是,我遇到了一个错误,将其中一个更改为错误,并修复了该错误。 是==坏?什么时候应该使用它,不应该使用它?有什么不同? 问题答案: 测试引用是否相等(它们是否是同一对象)。 测试值是否相等(在逻辑上是否为“相等”)。 在调用之前进行检查,因此您不必(在JDK7起可用,在Guava中也可用)。 因此,如果要测试两个字符串是否具有相同的

  • 此外,我重写了hashCode()以: 现在,即使两个对象都是@dog0,print语句也会打印false。想知道为什么控制台: