java方法中值传递和引用类型传递
问题:
void test(){
int successNum = 0,failNum = 0;
test1(successNum ,failNum );
System.out.println(successNum);
System.out.println(failNum );
}
void test1(int successNum,int failNum){
successNum++;
failNum++;
}
为什么输出来的还是0?好问题!!!
在java语言中,变量类型分为引用类型和基本类型,他们分别分布在堆和栈里面,
方法传递基本类型时,是采用的值传递,不会改变传递基本类型变量的值,当采用引用类型传递时,传递的是对象的地址,当对象属性发生改变时,传递的对象本身也发生了改变。
解决方法:
自己创建一个对象。采用AtomicInteger等