Integer k=new Integer(1);如果要改变k的int值,要怎么操作呢

解决方案 »

  1.   

    Integer k=new Integer(1);
    k=2;
    System.out.print(k);
    是这个意思吗
      

  2.   

    System.out.print(k); 
    这样的结果是2?
      

  3.   

    怎么是改变k的int值,基本类型的包装类型都是不变对象
    k=2相当于
    k = Integer.valueOf(2)
      

  4.   

    感觉有点怪public class Test{
       static void Intk(Integer k){
            k++;
       }
       public static void main(String[] args){
          Integer k=new Integer(1);
          Intk(k);
          System.out.print(k);
       }
    }为啥出来的结果是1呢?传入Intk的不是k的引用吗?
      

  5.   

    所有的基本类型包装类和String 类型 都是比较特殊的。
    他们每次运算后,都会生成一个新的对象。例如:
    Integer i = new Integer(1);
    i=i+1;
    这两个 i 是不同的对象!
    String a = "aa";
    a+="b";
    这两个 a 也不是同一个对象!
    关于基本包装类和 String 类型,它们在传参时,传递的仅仅是值,并非引用!
      

  6.   

    public class Test{
       
            static int intk(Integer k){
    int s=k.intValue();
                    s++;
    return s;   }
       public static void main(String[] args){
          Integer k=new Integer(1);
          k=Intk(k);
          System.out.print(k);
       }
    }