首页 > 代码库 > Java杂谈之StringBuffer----兼带String,StringBuffer,StringBuilder的区别
Java杂谈之StringBuffer----兼带String,StringBuffer,StringBuilder的区别
在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的那部分我注释了,可以注释StringBuffer部分再解除
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); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。