String temp = "1";
   session.setAttribute("temp",temp);
   String temp1=(String)session.getAttribute("temp");
   temp1="2";
   String temp3=(String)session.getAttribute("temp");\
   temp3=?   其实我想问问getAttribute返回的引用还是一个拷贝,我这样更改temp1的值会更新temp的值吗,如果不会那要怎么做才能更新呢?再set一回?那会不会在session中又产生另一个对象呢。

解决方案 »

  1.   

    java中传递的都是引用,只用明确调用到克隆方法才是对象克隆。
      

  2.   

    我以前做的项目用到HashMap貌似是引用copy
    session貌似没想过,如果楼主找到答案,应该把答案写出来
    这才叫分享..
    不然你这不光叫别人帮你回答问题?自己确根本不帮助别人
      

  3.   

    那确实。。同意楼上的。我觉得temp的值应该多没有变!一直多是1吧!
      

  4.   

    存的是引用但是temp1="2";并不能改变Session中的引用。
    这句只改变了temp1的引用
      

  5.   

    接楼主再问一下
    eg:
    id  ...
    1   ...
    2   ...
    3   ... 
     String s=rs.getString("id");
     session.setAttribute("getid",s);
    那么 session.getAttribute("getid")的值应该是多少?
      

  6.   


    temp的值确实没有变,原因的话我觉得这个应该是比较合理的。