问个integer包装类的问题

sidenycc 2008-01-16 08:33:43

Integer k=new Integer(1);

如果要改变k的int值,要怎么操作呢
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
czy8438 2008-01-16
  • 打赏
  • 举报
回复


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);
}
}


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

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的引用吗?
Yanbin_Q 2008-01-16
  • 打赏
  • 举报
回复
怎么是改变k的int值,基本类型的包装类型都是不变对象
k=2相当于
k = Integer.valueOf(2)
SYAND2004 2008-01-16
  • 打赏
  • 举报
回复
是啊,我知道是2
楼主是什么意思啊。
是想怎么改变????
changjiangzhibin 2008-01-16
  • 打赏
  • 举报
回复
k.value = 2;好像是
sidenycc 2008-01-16
  • 打赏
  • 举报
回复
System.out.print(k);
这样的结果是2?
SYAND2004 2008-01-16
  • 打赏
  • 举报
回复
Integer k=new Integer(1);
k=2;
System.out.print(k);
是这个意思吗

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧