浅析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,尽量避免

相关文章

  • Java程序员的10道常见的XML面试问答题(XML术语详解)

    Java程序员的10道常见的XML面试问答题(XML术语详解)

    包括web开发人员的Java面试在内的各种面试中,XML面试题在各种编程工作的面试中很常见。XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准
    2014-04-04
  • java开发之MD5加密算法的实现

    java开发之MD5加密算法的实现

    本篇文章介绍了,java开发之MD5加密算法的实现。需要的朋友参考下
    2013-05-05
  • JVM 参数配置详细介绍

    JVM 参数配置详细介绍

    这篇文章主要介绍了JVM 参数配置详细介绍的相关资料,需要的朋友可以参考下
    2017-02-02
  • MyBatis的逆向工程详解

    MyBatis的逆向工程详解

    这篇文章主要介绍了MyBatis的逆向工程详解,详细的介绍了逆行工程的概念和实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • java中BigDecimal的操作方法

    java中BigDecimal的操作方法

    这篇文章主要介绍了java中BigDecimal的操作方法,较为详细的分析了BigDecimal类在进行商业计算时的应用方法,精度以及注意事项等问题,需要的朋友可以参考下
    2014-12-12
  • 深入理解Java中的字符串类型

    深入理解Java中的字符串类型

    这篇文章主要介绍了Java中的字符串类型,需要的朋友可以参考下
    2014-02-02
  • spring boot实现过滤器和拦截器demo

    spring boot实现过滤器和拦截器demo

    本篇文章主要介绍了spring boot实现过滤器和拦截器demo ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Java的动态绑定与双分派_动力节点Java学院整理

    Java的动态绑定与双分派_动力节点Java学院整理

    这篇文章主要介绍了Java的动态绑定与双分派,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 详解springMVC两种方式实现多文件上传及效率比较

    详解springMVC两种方式实现多文件上传及效率比较

    本篇文章介绍了springMVC两种方式实现多文件上传及效率比较。springMVC实现多文件上传有两种,一种是字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传,有兴趣的可以了解一下。
    2016-12-12
  • 深入理解Java的接口与抽象类

    深入理解Java的接口与抽象类

    本文主要介绍java 的接口和抽象类,对接口和抽象类进行介绍对比,深入理解,有需要的小伙伴可以参考下
    2016-07-07

最新评论