浅析java中Integer传参方式的问题
更新时间:2013年09月05日 10:07:43 作者:
以下是对java中Integer传参方式的问题进行了详细的介绍,需要的朋友可以过来参考下
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,尽量避免
相关文章
SpringBoot中的ApplicationRunner与CommandLineRunner问题
这篇文章主要介绍了SpringBoot中的ApplicationRunner与CommandLineRunner问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-09-09Java实现大文件的分片上传与下载(springboot+vue3)
这篇文章主要为大家详细介绍了java基于springboot+vue3如何大文件的分片上传与下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2023-06-06Java中BufferedReader类获取输入输入字符串实例
这篇文章主要介绍了Java中BufferedReader类获取输入输入字符串实例,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下2018-02-02
最新评论