黑马程序员技术交流社区

标题: StringBuilder和StringBuffer有什么区别? 为什么能被final修饰? [打印本页]

作者: 吴华二    时间: 2012-3-26 16:13
标题: StringBuilder和StringBuffer有什么区别? 为什么能被final修饰?
StringBuilder和StringBuffer有什么区别? 为什么能被final修饰?final修饰的类是最终类!这应该如何理解呢?
作者: 吕猛    时间: 2012-3-26 16:27
StringBuffer    JDK1.0开始;StringBuilder   JDK1.5开始。
StringBuffer线程同步的;StringBuilder 线程不同步。

毕老师。他们用法一样,因为StringBuilder是后出的,建议使用StringBuilder。
作者: 〆_xin_、_跳    时间: 2012-3-26 17:57
StringBuilder类是JDK 5.0引入的新的类, 实质上,StringBuffer是一个线程安全的StringBuilder, 如果只在同一个线程内对字符串进行操作, StringBuilder会更快一些, 如果是使用多线程进行操作,需要使用StringBuffer.StringBuilder是非线程安全的,StringBuffer是线程安全的。final修饰类时表示该类不可继承;修饰变量时表示该变量是常量,即不可变;修饰方法时表示该方法不可被重写。
作者: 贠(yun)靖    时间: 2012-3-26 18:18
StringBuffer  比StringBuilder  出现的晚他两的功能基本相同只不过
StringBuffer线程同步的;StringBuilder 线程不同步。
所以说推荐使用StringBuffer   遇到线程安全问题自己加锁就行了 ,这样效率会提高很多
因为只要不涉及到线程安全的话你用Builder  还要判断锁  显然是多此一举的
   final修饰 是修饰这个容器成一个固定的容器   
  你可以把容器看成一个脸盆,  而你个人是这个容器的引用,用final修饰后  代表着 你只能使用这一个脸盆了  
而你这个对象引用是不能再重新创建容器对象了   但是你在这个脸盆中添加元素 还是可以的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2