• 关于对象与内存的猜想


    引用类型(reference type)指向一个对象,不是原始值,指向对象的变量是引用变量。
    在java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。

    在传参中,引用类型对象的值的一个副本传入方法,原对象没改变,传入的副本重新赋值。

    public class Test8 {


    public void cc(String str){
    System.out.println(3+str);
    str = "no";
    System.out.println(4+str);
    }

    public static void main(String[] args) {
    String s = new String("aaa");
    Test8 t = new Test8();
    System.out.println(1+s);
    t.cc(s);
    System.out.println(2+s);
    }

    }

    ---------------------------------------

    1aaa
    3aaa
    4no
    2aaa

    引用类型改变的是其内的属性值,其本身不变。

    ***********************************************************************

    Map<String, Object> map = null;

    List<BaseBean> beanlist = new ArrayList<BaseBean>();

    for(int i=0;i<list.size();i++){
    map = list.get(i);
    basebean = new BaseBean();
    basebean.setOrder_seq(map.get("ZBORDERID")+"");
    basebean.setSequen((map.get("TEAMORDERID")+""));
    basebean.setPassName((map.get("PASSNAME")+""));
    basebean.setCardNO((map.get("DOCNUMBER")+""));
    beanlist.add(basebean);
    }

    arraylist.add(basebean) 增加的是basebean对象的内存地址,如果for循环中,每次不重新产生新对象【basebean = new BaseBean();】,那么每次添加的都是同一个basebean对象,arraylist会以最后一次的内存地址为准!结果如下:

    BaseBean [sequen=325690, order_seq=392240, passName=ODS/Thor, cardNO=G666666]
    BaseBean [sequen=325690, order_seq=392240, passName=ODS/Thor, cardNO=G666666]
    BaseBean [sequen=325690, order_seq=392240, passName=ODS/Thor, cardNO=G666666]
    BaseBean [sequen=325690, order_seq=392240, passName=ODS/Thor, cardNO=G666666]
    BaseBean [sequen=325690, order_seq=392240, passName=ODS/Thor, cardNO=G666666]
    BaseBean [sequen=325690, order_seq=392240, passName=ODS/Thor, cardNO=G666666]

  • 相关阅读:
    NSThread 多线程 三种方式
    CABasicAnimation 核心动画
    图片圆角属性
    GCD
    IOS 推送
    IOS 截图
    UIImage 截图
    UIImageView 动画
    AFN 判断网络状态
    Template 模式
  • 原文地址:https://www.cnblogs.com/flord/p/5718903.html
Copyright © 2020-2023  润新知