当前位置: 代码迷 >> Java Web开发 >> 一道方法调用的笔试题
  详细解决方案

一道方法调用的笔试题

热度:97   发布时间:2010-11-08 14:33:16.0
一道方法调用的笔试题

pubic static void main(String[] args){
    String str="hello";
    char[] c=new char[]{'a','b','c'};
    method(str,c);
    System.out.println("str="+str+" ****** c="+c.toString());
}

public void method(String str,char[] c){
    str="ok there";
    c[0]='g';
}


没有ide,用记事本编辑的,可能有细节错误,各位见谅。大致意思应该表达清楚了。

问输出结果是什么?
搜索更多相关主题的帖子: 笔试  

----------------解决方案--------------------------------------------------------
str=hello ****** c=g,b,c
----------------解决方案--------------------------------------------------------
应该是这个吧,str=ok there ****** c={g,b,c}
----------------解决方案--------------------------------------------------------
hello****c=字符数组的地址
public丢了个"l"
调用方法要new对象 或者把方法写成静态的
根据程序执行流程 method方法调用后 str指向"go there"的引用被销毁 所以打印的str是指向"hello"的那个
如果你把打印语句写在method方法里 最后打印出来的就是go there
字符数组你不重写他的toString方法 打印的都是内存地址 你里面的c.toString和直接打印c没区别



----------------解决方案--------------------------------------------------------
楼上正解 。
----------------解决方案--------------------------------------------------------
第一,public写错了
第二,method不是static,不能直接调用
第三,java中只有值传递
所以输出hello****abc
----------------解决方案--------------------------------------------------------
  相关解决方案