标签:stringbuilder stringbuffer string 线程安全与多线程 java中string和stringbu
在Java中,用到最多的当属String类型的数据了
而这一点就要涉及String , StringBuffer , StringBuilder这三大类
下面主要来比较一下String和StringBuffer的区别,因为StringBuffer和StringBuilder
太相似,所以就不拿来比较了。
提及一下,StringBuffer和StringBuilder的区别
从安全性来说,StringBuffer更安全,StringBuffer主打线程安全
从执行效率来说,StringBuilder更效率,StringBuilder支持多线程
下面一个图来解释String和StringBuffer的区别
以下再次通过代码来诠释两者的区别:
package JavaTestString; public class JavaStringStringBuffer { public static void main(String[] args) { // String s = "hello"; StringBuffer strBuf = new StringBuffer("hello"); //执行之前的时间 long start = System.currentTimeMillis(); //执行之前的内存 long before = Runtime.getRuntime().freeMemory(); // for(int i=0;i<5000;i++) // { // s+="hello"; // } for(int i=0;i<5000;i++) { strBuf.append("world"); } //执行之后的时间 long end = System.currentTimeMillis(); //执行之后的内存 long after = Runtime.getRuntime().freeMemory(); System.out.println("耗时"+(end-start)+"毫秒"); System.out.println("耗内存"+(before-after)/1024/1024+"M"); } }
String部分注释运行),看看两者在运行时间和占用的内存空间上有什么不同。
以上是String,StringBuffer以及StringBuilder的联系和区别,下面介绍StringBuffer
常用的方法:
拼接增加字符串的方法:append()和insert()方法
删除字符串或者字符串一部分的方法:delete(),deleteCharAt()
修改字符串某个位置的方法:setCharAt()方法
翻转字符串的方法:reverse()方法
以下是具体的实例代码:
package JavaTestString; public class StringBufferTest { public static void main(String[] args) { StringBuffer strBuf=new StringBuffer(); System.out.println(strBuf); //从安全性来说,StringBuffer更安全 //从执行效率来说,StringBuilder更效率 //StringBuffer----线程安全 //StringBuilder----支持多线程 StringBuffer strBuf1 = new StringBuffer("helloworld"); StringBuilder strBui = new StringBuilder("helloworld"); System.out.println(strBuf1); //以下StringBuffer具有的方法,StringBuilder也具有,就不一一举例了 //增加的方法--append()方法和insert() strBuf1.append(123); strBuf1.append("Java!"); System.out.println(strBuf1); strBuf1.insert(5, "XJL"); System.out.println(strBuf1); //删除 strBuf1.delete(2, 4);//包括2不包括4 System.out.println(strBuf1); strBuf1.deleteCharAt(1); System.out.println(strBuf1); //修改 strBuf1.setCharAt(1, 'Y'); System.out.println(strBuf1); //翻转 strBuf1.reverse(); System.out.println(strBuf1); } }
Java杂谈之StringBuffer----兼带String,StringBuffer,StringBuilder的区别,布布扣,bubuko.com
Java杂谈之StringBuffer----兼带String,StringBuffer,StringBuilder的区别
标签:stringbuilder stringbuffer string 线程安全与多线程 java中string和stringbu
原文地址:http://blog.csdn.net/u010792238/article/details/38346307