不再纠结Java中的String类

发表于:2012-4-06 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:octobershiner    来源:51Testing软件测试网采编

  下面就要说第二个类StringBuffer。

  StringBuffer是一个线程安全的,就是多线程访问的可靠保证,最重要的是他是可变的,也就是说我们要操作一个经常变化的字符串,可以使用这个类,基本的方法就是append(与string的concat方法对应)和insert方法,至于怎么使用,就不多讲了,大家可以自己查看API。

  1. StringBuilder sb = new StringBuilder("string builder");  
  2.         StringBuffer sf = new StringBuffer("string buffer");  
  3.           
  4.         long start = System.currentTimeMillis();  
  5.           
  6.         for(int i = 0; i < 50000; i++)  
  7.         {  
  8.             //str1+= " ";  
  9.             sb.append(" ");  
  10.         }  
  11.           
  12.         long end = System.currentTimeMillis();  
  13.         System.out.println("the run time is "+(end -start)+" ms");

  测试一下,这次只需要8ms,这就是效率。

  那么接下来,就要问StringBuilder是干什么的,其实这个才是我们尝使用的,这个就是在jdk 1.5版本后面添加的新的类,前面说StringBuffer是线程同步的,那么很多情况下,我们只是使用一个线程,那个同步势必带来一个效率的问题,StringBuilder就是StringBuffer的非线程同步的版本,二者的方法差不多,只是一个线程安全(适用于多线程)一个没有线程安全(适用于单线程)。

  其实看了一下jdk源代码就会发现,StringBuffer就是在各个方法上加上了关键字syncronized

  以上就是对三个字符串类的一个总结,总之不要在这上面纠结。。。。。。不想介绍太多的方法,总觉得那样会把一篇博客弄成API文档一样,而且还非常的繁琐。都是些体会,希望有所帮助。起码不要再纠结,尤其是面试。。。。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号