湟中网站建设,盐城做网站网络公司电话?,太原市手机微网站建设,天津做网站制作公司参考链接#xff1a; Java中的String vs StringBuilder vs StringBuffer
下述文章资料来源于#xff1a; W3CSCHOOL离线版的Java教程 Java JDK 6.0开发手册 Java开发从入门到精通(陈小玉版)
StringBuffer和String选择的异同 StringBuffer在进行字符串处理时#xff0c;不…参考链接 Java中的String vs StringBuilder vs StringBuffer
下述文章资料来源于 W3CSCHOOL离线版的Java教程 Java JDK 6.0开发手册 Java开发从入门到精通(陈小玉版)
StringBuffer和String选择的异同 StringBuffer在进行字符串处理时不生成新的对象在内存的使用上要优于String类 二者有一个最显著的区别在于对于StringBuffer对象的每次修改都会改变对象自身这点是和String类最大的区别
Java StringBuffer和StringBuilder类 当对字符串进行修改的时候需要使用StringBuffer和StringBuilder类。
和String类不同的是StringBuffer和StringBuilder类的对象能够被多次的修改并且不产生新的未使用对象。
StringBuilder类在Java 5中被提出它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的线程安全就是多线程访问时采用了加锁机制当一个线程访问该类的某个数据时进行保护其他线程不能进行访问直到该线程读取完其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护有可能出现多个线程先后更改数据造成所得到的数据是脏数据。
由于StringBuilder相较于StringBuffer有速度优势所以多数情况下建议使用StringBuilder类。然而在应用程序要求线程安全的情况下则必须使用StringBuffer类。
在Java中规定,一旦声明String的内容就不可再改变,如果要改变,改变的肯定是String的引用地址。 如果一个字符串需要经常被改变,则必须使用 StringBuffer类。 在String类中可以通过“”来连接字符串,在StringBuffer中只能使用方法append()来连接字符串。
public class Test{ public static void main(String args[]){ StringBuffer sBuffer new StringBuffer( test); sBuffer.append( String Buffer); System.out.println(sBuffer); }
} 以上实例编译运行结果如下
test String Buffer StringBuffer 方法 以下是StringBuffer类支持的主要方法
序号方法描述1public StringBuffer append(String s) 将指定的字符串追加到此字符序列。2public StringBuffer reverse() 将此字符序列用其反转形式取代。3public delete(int start, int end)4public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。5replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。
下面的列表里的方法和String类的方法类似 使用append()来连接字符串
public class StringBufferT1{ public static void main(String args[]){ StringBuffer buf new StringBuffer() ; // 声明StringBuffer对象 buf.append(Hello ) ; // 向StringBuffer中添加内容 buf.append(World).append(!!!) ; // 可以连续调用append()方法 buf.append(\n) ; // 添加一个转义字符 buf.append(数字 ).append(1).append(\n) ; // 添加数字 buf.append(字符 ).append(C).append(\n); // 添加字符 buf.append(布尔 ).append(true) ; // 添加布尔值 System.out.println(buf) ; // 直接输出对象调用toString() }
}; 在任意处为StringBuffer添加内容
public class StringBufferT3{ public static void main(String args[]){ StringBuffer buf new StringBuffer() ; // 声明StringBuffer对象 buf.append(World!!) ; // 添加内容 buf.insert(0,Hello ) ; // 在第一个内容之前添加内容 System.out.println(buf) ; buf.insert(buf.length(),MM~) ; // 在最后添加内容 System.out.println(buf) ; }
}; 在任意处为StringBuffer添加内容
public class StringBufferT5{ public static void main(String args[]){ StringBuffer buf new StringBuffer() ; // 声明StringBuffer对象 buf.append(Hello ).append(World!!) ; // 向StringBuffer添加内容 buf.replace(6,11,AAA) ; // 将world的内容替换 System.out.println(内容替换之后的结果 buf) ; // 输出内容 }
}; 从StringBuffer中删除指定范围的字符串
public class StringBufferT7{ public static void main(String args[]){ StringBuffer buf new StringBuffer() ; // 声明StringBuffer对象 buf.append(Hello ).append(World!!) ; // 向StringBuffer添加内容 buf.replace(6,11,AAA) ; // 将world的内容替换 String str buf.delete(6,15).toString() ; // 删除指定范围中的内容 System.out.println(删除之后的结果 str) ; // 输出内容 }
};