A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

StringBuilder和StringBuffer有什么区别? 为什么能被final修饰?final修饰的类是最终类!这应该如何理解呢?

3 个回复

倒序浏览
StringBuffer    JDK1.0开始;StringBuilder   JDK1.5开始。
StringBuffer线程同步的;StringBuilder 线程不同步。

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