zoukankan      html  css  js  c++  java
  • 关于对象与内存的猜想

    引用类型(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]

  • 相关阅读:
    MySQL数据库事务隔离级别(Transaction Isolation Level)
    getParameter() getInputStream()和getReader() 区别
    Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart
    解决count distinct多个字段的方法
    表的连接查询
    使用Nexus搭建Maven代理仓库
    来测试下你的JAVA编程能力
    JAVA编程能力提升学习图
    负载均衡各个算法JAVA诠释版
    从零开始学领域驱动设计(二)
  • 原文地址:https://www.cnblogs.com/flord/p/5718903.html
Copyright © 2011-2022 走看看