Integer value=0;
void funName(Integer value)
{
value++;
}
system.out.println(value);
输出的value值还是0。
Integer是对象了啊,不是应该传递引用吗,这样在函数里修改了值后,会对外面的值也产生影响啊。但事实上并没有改变外面的值。
如果要在函数里修改value的值,应该怎么办?
------解决思路----------------------
楼主,你可以这么想,当你使用 value++的时候, java 其实是用的 value=value+1;因此, value 的对象变了,不是传进来的那个地址了,因此你在函数内部对 value 做得修改,不会影响到函数外部
------解决思路----------------------
基本类型的变体引用类型和String都不能直接当纯引用类型来用,比如Integer,Double等都是int与double的引用类型,但是你不能像普通引用类型那样直接对他的值做改变,因为在他们里面封装的原始int与double都用了final进行声明。所以你就算重新赋值了原始的int与double都不会改变。