黑马程序员技术交流社区

标题: StringBuffer面试题 [打印本页]

作者: 大牛1    时间: 2016-6-1 20:16
标题: StringBuffer面试题
StringBuffer面试题
  1. package cn.itcast_08;

  2. /*
  3. * 面试题:
  4. * 1:String,StringBuffer,StringBuilder的区别?
  5. * A:String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的。
  6. * B:StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高
  7. *
  8. * 2:StringBuffer和数组的区别?
  9. * 二者都可以看出是一个容器,装其他的数据。
  10. * 但是呢,StringBuffer的数据最终是一个字符串数据。
  11. * 而数组可以放置多种数据,但必须是同一种数据类型的。
  12. *
  13. * 3:形式参数问题
  14. * String作为参数传递
  15. * StringBuffer作为参数传递
  16. *
  17. * 形式参数:
  18. *                 基本类型:形式参数的改变不影响实际参数
  19. *                 引用类型:形式参数的改变直接影响实际参数
  20. *
  21. * 注意:
  22. *                 String作为参数传递,效果和基本类型作为参数传递是一样的。
  23. */
  24. public class StringBufferDemo {
  25.         public static void main(String[] args) {
  26.                 String s1 = "hello";
  27.                 String s2 = "world";
  28.                 System.out.println(s1 + "---" + s2);// hello---world
  29.                 change(s1, s2);
  30.                 System.out.println(s1 + "---" + s2);// hello---world

  31.                 StringBuffer sb1 = new StringBuffer("hello");
  32.                 StringBuffer sb2 = new StringBuffer("world");
  33.                 System.out.println(sb1 + "---" + sb2);// hello---world
  34.                 change(sb1, sb2);
  35.                 System.out.println(sb1 + "---" + sb2);// hello---worldworld

  36.         }

  37.         public static void change(StringBuffer sb1, StringBuffer sb2) {
  38.                 sb1 = sb2;
  39.                 sb2.append(sb1);
  40.         }

  41.         public static void change(String s1, String s2) {
  42.                 s1 = s2;
  43.                 s2 = s1 + s2;
  44.         }
  45. }
复制代码








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