java中Integer传参方式什么是样的?
baby不要哭泣
baby不要哭泣 2017-02-24 13:08:00
0
2
830

java中Integer传参方式什么是样的?

baby不要哭泣
baby不要哭泣

모든 응답(2)
数据分析师

Java에서 정수 매개변수를 전달하는 방법은 무엇인가요? -PHP 중국어 사이트 Q&A-자바에서 정수 매개변수 전달 방식이 뭔가요? -PHP 중국어 홈페이지 Q&A

꼭 보고 배워보세요.

伊谢尔伦

Java本身都是值传递式的调用,对于对象传递的是地址值。给地址值重新赋值等于重新指向,不会影响外层。
而且这里Integer对象也有特殊性。其实现上可能类似

class Integer{
final int value; //一旦赋值,就不能改变。
}


这就出现:调用时传的地址值不能改变外层+对象本身又不能改变。导致这个值没法改变

解决方案很多
1、java风格就是,单个值用返回值。return i; 外面再i=foo();赋值;多个值用数组或对象。
2、传递自己的封装类。class MutableInteger{ int value;}
3、传递专用AtomicInteger原子整型对象

public static void main(String[] 参数) {    
  AtomicInteger i=new AtomicInteger(40);
  i.intValue();
  System.out.println(i);
 }
    public static void change(AtomicInteger i) {
     i.set(55);
}

也可以实现传递后改值 ,

推荐方案1,尽量避免


최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿