java 中 Integer 传参方式的问题
2011-09-14 16:07
302 查看
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,尽量避免
相关文章推荐
- java堆栈,基本数据存储方式和Integer缓存造成的小小问题
- 浅析java中Integer传参方式的问题
- Java线程:锁对象Lock-同步问题更完美的处理方式
- java Integer == 比较的小问题
- 生产者/消费者问题的多种Java实现方式
- 深入学习理解java:高效的解决死锁问题的线程通讯方式:Semaphore 和 BlockingQueue
- Java线程 锁对象Lock-同步问题比sychronized更完美的处理方式
- 生产者/消费者问题的多种Java实现方式
- iBaits中,关于insert返回值的问题(注意!!!不必写resultClass= "java.lang.Integer",方法的返回值就是int)
- Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
- Java Integer 缓存问题
- java中字符串或数字的对齐方式和输出所占用的宽度的问题
- (转载)一个有趣的问题:关于Java中的Integer
- java中以post方式提交,中文编码&解码问题
- android读取文件时乱码的问题,以及eclipse中java编码查看方式
- java.lang.Integer常见问题
- Java线程(七):锁对象Lock-同步问题更完美的处理方式
- 生产者/消费者问题的多种Java实现方式--转
- java Integer 比较的问题
- java数组中元素为String和Integer时的==判断问题