• 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,尽量避免
  • 相关阅读:
    TensorFlow object detection API
    bounding box的简单理解
    OverFeat学习
    tensorflow调试tfdbg
    2018.7-2019.4记录
    人工智能未来读后感 ----by RayKurzweil
    matlab exe
    神经网络的基础
    研究生的论文
    卷积神经网络经验
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/9165846.html
Copyright © 2020-2023  润新知