没错,是3,String b=a;应该只是传值。

解决方案 »

  1.   

    呵呵!看来楼主把String看成是简单一般的Class了,才举了这么一个非常不恰当的例子。
    对String对象作的任何改变,都将在heap中新建片内存来存储该对象,而不是一般的传递对象的引用(内存地址)。
    对于楼主说的这种情况,可以调用clone()方法复制一个对象即可了,但要高搞清楚该对象是“浅”or“深”拷贝
      

  2.   

    建议多研究下TIJ 2 中附录1的内容~!
      

  3.   

    String a="3";
    String b=a;我认为这里是引用,不是传值
    加上这句就可以得出此结论
    if(a == b)
    System.out.println("a == b");
      

  4.   

    public class NewId implements java.io.Serialable
    {
    private int value=0;
    public void setValue...
    public int getValue...
    }在ejb内的某一方法
    public NewId getId(NewId id)
    {
    id.setValue(44);
    }在client内调用getId
    NewId localId=new NewId(5);
    ..getId(localId);
    这时我想localId.getValue()为44
    请问我怎样才能实现,是不是在weblogic可以设置系统参数,实现引用传参数
    谢谢高手教我!
      

  5.   

    顺便多说一句,怕楼主不清楚String a="3";
    String b=a;
    if(a == b)//比较a和b的地址if(a.equals(b))//比较a和b的值,也就是内容
      

  6.   

    顺便加一句
    String a="3";
    String b="3";
    在内存中只创建了一个对象
      

  7.   

    java只有传值一种方式,如果想改变一个参数原来的值,那要使用对象,对象传值如果改变对象的成员,那原来那个对象的成员也会跟着改变
      

  8.   

    String a="3";
    String b=a;
    a和b指向同一个内存地址,b改变了这一内存地址中的值,那么a对这一内存地址中的值的引用也就 变了,不知偶说的对不对啊。
    对于String这种特殊类对象所谓的传值我个人理解为对内存地址这个值的传递。不知我理解的对不对,还望高手点拨
      

  9.   

    String 是一个特殊的东西,看看thinking in java的附录和effecitive java就明白了
      

  10.   

    shangqiao(伤桥) :你完全说的就是我的问题。
    String[] pictureURL = uPictureDB.getPictureURL(gameID);
    String[] tmp=(String[])pictureURL.clone();
    这样就是你说的clone()吗?强制转换看起来好像不是java语句,真难看。
    深浅拷贝是指对象类型是否也重新复制的意思吗,可否举个例子。
     Shrewdcat(丧邦&灵猫&潇) :不懂TIJ 2 是什么阿。
     fantasyCoder(牛仔+T恤) :你说的是不是和  shangqiao(伤桥)  完全相反。
     ybsoft(xxxxxx):"对象传值如果改变对象的成员,那原来那个对象的成员也会跟着改变"。这难道叫byValue?????
    感谢大家的帮忙。共同进步。
      

  11.   

    String a="3";
    String b=a;
    这里是引用,不是传值;
    但b="4";这句中
    "4"是一个对象,在内存中有自己的内存空间,所以b="4";就将原来
    指向a的b重新指向了"4"的内存地址
      

  12.   

    string在内存创建对象是很有趣的
    2条语句
    String a="3";
    String b="3";
    第一次在内存中是a指向3的单元
    第二次当再次创建时会在内存中
    寻找值为3的单元,如果存在,就
    将b也指向它,如果不纯在就重新
    创建
    你可以试一下
    if(a==b)
    比地址