String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,它的方法是同步的,可以在多线程环境中使用而不会出现数据竞争和不一致的问题。因为方法是同步的,所以在多线程环境中使用StringBuffer会带来一些性能上的损失。
而StringBuilder 是非线程安全的,它的方法没有进行同步,不适合在多线程环境中使用。但是由于不需要进行同步,StringBuilder在单线程环境下性能比StringBuffer更好。文章来源:https://www.toymoban.com/news/detail-622229.html
String常用方法:文章来源地址https://www.toymoban.com/news/detail-622229.html
/**
* indexOf():返回指定字符的索引。
* charAt():返回指定索引处的字符。
* replace():字符串替换。
* trim():去除字符串两端空白。
* split():分割字符串,返回一个分割后的字符串数组。
* getBytes():返回字符串的 byte 类型数组。
* length():返回字符串长度。
* toLowerCase():将字符串转成小写字母。
* toUpperCase():将字符串转成大写字符。
* substring():截取字符串。
* equals():字符串比较。
* (); 字符串转换为char数组
* contains(); 字符串是否包含指定的字符序列
*/
@Test
void testStringMethod(){
String str = " abdcdeeFQ111rta ";
System.out.println("返回r的索引=" + str.indexOf('r'));
System.out.println("返回3索引处的字符=" + str.charAt(3));
str = str.replaceFirst("a","z");
System.out.println("一个字符串替换为z后=" + str);
str = str.trim();
System.out.println("去除字符串两端空白=" + str);
String[] strings = str.split("ee");
System.out.println("分割字符串,返回一个分割后的字符串数组=" + strings[0]);
byte[] bytes = str.getBytes();
System.out.print("返回字符串的 byte 类型数组:");
for (byte b:bytes) {
System.out.print(" " + b);
}
System.out.println();
System.out.println("返回字符串长度="+str.length());
System.out.println("将字符串转成小写字母=" + str.toLowerCase());
System.out.println("将字符串转成大写字符=" + str.toUpperCase());
System.out.println("截取字符串从2到5的字符=" + str.substring(2,5));
System.out.println("截取字符串从2到结束的字符=" + str.substring(2));
System.out.println("字符串比较\"aaa\"是否和\"bbb\"相等:" + "aaa".equals("bbb") );
char[] chars = str.toCharArray();
System.out.println("字符串转换为char数组");
System.out.println("字符串是否包含指定的字符序列:" + str.contains("111"));
}
到了这里,关于java基础四-String/StringBuffer/StringBuilder区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!