java基础题一

来源:互联网 发布:淘客喵软件 编辑:程序博客网 时间:2024/06/08 00:45

指出下列程序运行的结果()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
publicclass Example{
    String str = newString("good");
    char[ ] ch = { 'a''b''c'};
    publicstatic void main(String args[]){
        Example ex = newExample();
        ex.change(ex.str,ex.ch);
        System.out.print(ex.str + " and ");
        System.out.print(ex.ch);
    }
    publicvoid change(String str,charch[ ]){
        str = "test ok";
        ch[0] = 'g';
    }
}


1/1
A good and abc
B good and gbc
C test ok and abc

D test ok and gbc



答案:B


.这是《java编程思想》283页,字符串这章第一个概念,“String对象是不可变的(看了源码,String实质是final修饰的char数组!),每个看起来会修改的方法,其实都是创建了一个全新的String”...... 2.要知道字符串常量的概念,那个“test ok”是个字符串常量!在编译期就定好了,赋值的时候相当于new了新的字符串给那个引用。传参的时候,把外面的str引用地址复制了一份给方法内的str。(通常,我们以前认为的是,方法里修改了引用对应的值,然后里里外外都对应这个,全改了!注意!这里不是修改值!是相当于直接new了个新的地址给方法内的str。而原来的没变!)

原创粉丝点击