浅谈List保存的数据是引用数据类型的地址

今天一个初学javaweb的朋友问我一个bug,经过和别人 讨论分析了解到List对象细节上的一些问题,我将代码重新简化构造了一下做成了一个例子。上代码:

得到的结果:

咋一看,无非就是第一个循环没有循环创建test对象,第二个循环创建了test对象。

按照逻辑test在循环数据都进行了更新,然后再加入到list对象的,若不考虑list引用数据类型地址问题,第一个print和第二个print会都会输出[0,1,2,3,4]。

事实上,这和list引用数据类型地址有关,由于list存放的是一个对象的地址,而不是这个对象的值,所以当对象更新之后,之前加入list对象的test的值会因为test的对象更新,但对象地址没有发生变化,所以当list遍历的时候,由于是存放的地址,我们会取到同一个test对象,而对象的值也更新成了最后一个循环所赋的值。

简单的说:第一个:list里面存的是 【地址4,地址4,地址4,地址4】list并不是存的 【值1,值2,值3,值4.....】

第二个:list里面存的是 【地址1,地址2,地址3,地址4】而我们往往需要的是结果二,而不是结果一。

浅谈List保存的数据是引用数据类型的地址相关推荐

  1. python模型保存save_浅谈keras保存模型中的save()和save_weights()区别

    今天做了一个关于keras保存模型的实验,希望有助于大家了解keras保存模型的区别. 我们知道keras的模型一般保存为后缀名为h5的文件,比如final_model.h5.同样是h5文件用save ...

  2. 浅谈云计算和大数据技术

    浅谈云计算和大数据技术 背景: 随着计算机技术的发展,数据量日益增长,现有技术也很难满足业务的发展需求,在代码的层层迭代和优化之后,还是很难满足数据的增长需求,迫切需要一项新的技术来从事数据计算,因为 ...

  3. 浅谈服务器托管至IDC数据中心的优势

    浅谈服务器托管至IDC数据中心的优势 一:网络 企业自建机房一般用的是商务光纤,本质上也是从运营商的数据中心出来的光纤,只是要经过很多交换机跳转后才能到企业的机房,所以出现故障率的概率会高一些.IDC ...

  4. 浅谈通过网络和数据来“定位”一个人

    我们在看武侠小说时,总有些高手能飞天遁地,似乎无所不能,然而我们也总能发现那些如影随形的人,他们不分日月,不分四季的追踪.当今社会,也有这样的情况,追逐的战场已经变成了虚拟复杂的网络世界,根据自己的知 ...

  5. 浅谈人工智能、大数据等技术在交通领域的应用

    随着人工智能.大数据.物联网.云计算等技术的兴起与发展,各类设备.终端.系统平台等都会产生海量的数据,加之传统的处理方式已经逐渐落伍,因此,这些智能便捷化的技术便逐渐渗透到各行各业中.像交通行业随着交 ...

  6. 张钹院士:浅谈人工智能与大数据的关系

    来源:联合时报 本文共2385字,建议阅读5分钟. 本文主要浅谈了人工智能和大数据的关系以及中国在人工只能领域对世界的超越. 中国科学院院士张钹对国内外人工智能产业发展现状,提出我国仅靠跟随性的应用深 ...

  7. 浅谈Oracle 数据库之间数据同步方案

    随着信息技术的飞速发展,企业信息化建设的不断深入,使得企业业务系统数量不断增加.这时,各业务系统之间数据交互,各子业务系统与核心业务系统之间数据交互,诸如此类场景的应用需求不断出现.因此,IT部门应对 ...

  8. docker -v 挂载文件_浅谈关于docker中数据卷的操作,附带案例

    Volume数据卷的由来: Docker镜像是由多个文件系统(只读层)叠加而成.当我们启动一个容器的时候,Docker会加载只读镜像层并在其上添加一个读写层.如果运行中的容器修改了现有的一个已经存在的 ...

  9. python稳健性检验_浅谈使用python处理数据的日常经验

    - TFPraw.dta - TFPtrans2single.dta - TFPresult0909.dta - getTFP.py - balabala... 这个示例是一个典型的工作时产生的数据集 ...

最新文章

  1. GitHub上整理的一些工具【转载】
  2. idea javafx添加maven_IDEA通过Maven打包JavaFX工程(OpenJFX11)
  3. 【移植驱动到Linux3.4.2内核之一】移植DM9000C网卡驱动
  4. 吉林大学计算机与科学专业排名,吉林大学专业排名 哪些王牌专业推荐就读
  5. IDEA(2021)最全常用快捷键《必须收藏》
  6. jenkins--Jenkins+Git+coding+maven 实现自动化测试持续集成
  7. js 控制 head 元素 隐藏与显示
  8. 容器技术Docker K8s 28 容器服务ACK基础与进阶-弹性伸缩
  9. 《动手学深度学习》学习总结
  10. 盲目自信、能力不足、年少轻狂,这是我创业失败后总结的3条血泪事实
  11. linux javascript开发工具,JavaScript 基础工具清单
  12. 小程序页面生命周期函数
  13. 【Lucene】挖掘相关搜索词
  14. 【b302】侦探推理
  15. Java写win10激活码_win10系统配置java环境 生成密钥
  16. 教程:使用C#将PDF页面转换为PNG图像
  17. CVPR 2019视频目标跟踪算法Pipeline集合
  18. Trac - Trac Links
  19. 面试题:将字符串中的中英文分开显示
  20. ui动画_ui后效动画指南

热门文章

  1. SQLServer中的数据类型
  2. C++中的new和delete操作符重载
  3. mysql数据库访问300ms以上_[Java教程]一张900w的数据表,16s执行的SQL优化到300ms?...
  4. drupal安装教程 linux,如何在Fedora Linux上安装Drupal 7
  5. 利用计算机漏洞犯罪,利用漏洞非法谋利2000元怎么处罚
  6. html action get post请求参数乱码,input type=text 发送请求参数,中文乱码问题
  7. opencv 霍夫曼变换 直线提取
  8. oracle record 类型,Oracle记录类型(record)和%rowtype
  9. easyloging 获取日志文件名字_愉快地学Java语言:第十五章 断言与日志
  10. FCN全连接卷积网络(4)--Fully Convolutional Networks for Semantic Segmentation阅读(引言部分)