java

当前位置:中华考试网 >> java >> java面试题 >> 文章内容

java认证考试编程题(13)

来源:中华考试网  [2016年10月5日]  【

public class Test
{
    public static void main(String[] args)
    {
        String a = new String("A");
        String b = new String("B");
        a.concat("aa");
        System.out.println(a + "," + b);
    }

}


这个还是会输出A,B
原因同上.

package intervie;
public class Test
{
    public static void main(String[] args)
    {
        String a = new String("A");
        String b = new String("B");
        a = a.concat("aa");
        System.out.println(a + "," + b);
    }

}

做了下改动,再来看看.结果就不同了.
输出的是Aaa,B
因为String 是final类型的.所以执行到
a = c.concat("aa");
会在heap里新创建一个对象,而a指向它.
这是一新的地址,同String a 这个已经不同了.
所以输出的是后一个.即改变后的值.

责编:sunny
  • 会计考试
  • 建筑工程
  • 职业资格
  • 医药考试
  • 外语考试
  • 学历考试