码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础知识强化48:StringBuffer类之StringBuffer的三个面试题

时间:2015-09-19 22:31:56      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

1. 面试题:String,StringBuffer,StringBuilder的区别 ?

答:String是字符串内容不可变的,而StringBuffer和StringBuilder是字符串内容长度可变的;

StringBuffer是同步的,数据安全,效率低。

StringBuilder是不同步的,数据不安全,效率高。

 

2. 面试题:StringBuffer 和数组的区别?

答:二者都可以看出是一个容器,装其他的数据。但是呢,StringBuffer的数据最终是一个字符串数据,而数组可以放置任意类型的同一种数据。

 

3. 面试题:形式参数问题。

String作为参数传递

StringBuffer作为参数传递

   形式参数:

               基本类型:形式参数的改变不影响实际参数

               引用类型:形式参数的改变直接影响实际参数

案例演示:

package cn.itcast_08;

/*
 * 形式参数问题:
 * String作为参数传递
 * StringBuffer作为参数传递 
 * 
 * 形式参数:
 *         基本类型:形式参数的改变不影响实际参数
 *         引用类型:形式参数的改变直接影响实际参数
 * 
 * 注意:
 *         String作为参数传递,效果和基本类型作为参数传递是一样的。
 */
public class StringBufferDemo {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "world";
        System.out.println(s1 + "---" + s2);// hello---world
        change(s1, s2);
        System.out.println(s1 + "---" + s2);// hello---world

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

    }

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

    public static void change(String s1, String s2) {
        s1 = s2;
        s2 = s1 + s2;
    }
}

运行效果如下:

技术分享

Java基础知识强化48:StringBuffer类之StringBuffer的三个面试题

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4822262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!