渔人码头

天行健,君子以自强不息。地势坤,君子以厚德载物。
posts - 12, comments - 16, trackbacks - 0, articles - 43
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2007年2月13日

     摘要: intern()得到的String之间的==  阅读全文

posted @ 2007-03-11 21:09 Fisher 阅读(466) | 评论 (0)编辑 收藏

     摘要: 如果你需要频繁地启动位于 shell 搜索的路径之外的程序,你就得编辑你的用户 shell 配置文件来添加包含你想运行的文件的目录。你可以通过在你的 PATH 环境变量中添加该目录来达到这个目的。  阅读全文

posted @ 2007-02-25 01:30 Fisher 阅读(3552) | 评论 (0)编辑 收藏

面试的时候遇到这样一个问题
package com.fisher.string;

public class TestStringChange {

    
public void change(String a, char[] b) {
        a 
= "Jennfier";
        b[
0= 'F';
    }

    
public static void main(String[] args) {
        TestStringChange test 
= new TestStringChange();

        String a 
= "Fisher";
        
char[] b = { 'f''i''s''h' };

        test.change(a, b);
        System.out.println(a);
        System.out.println(b);
    }
}

这个是比较容易迷惑的问题。

String 是对象,传引用调用后,穿过方法change 里去的a 是一份指向"Fisher"对象的指针,当  在change里面改变后,指向别的对象“Jennfier"后,在原来的main 方法里不受影响,改变的不是"Fisher"对象,而是改变该方法的指针a 的指向

但是char[] 数组就会改变了,因为在change  方法里改变的是char[] 数组的内容

答案是

Fisher
Fish

posted @ 2007-02-13 16:53 Fisher 阅读(444) | 评论 (1)编辑 收藏