`
hn_liuyi
  • 浏览: 32545 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

软件优化中的一个小问题

XML 
阅读更多
在软件优化中,为了保证相同的数据只从数据库或者本地xml文件读取一次到内存中,我使用的单利模式,解决了读取一次的问题。但在解决这个问题以后却发现,之前同事调用该块程序还有一定的问题,大致如下:
在读取数据库或者本地xml文件的数据到一个List 对象中:List list1 = new ArrayList();在该list1中存上了大约几万条数据,使用单利模式就是为了不让该数据在内存中出现多次,后来发现很多模块使用该数据的时候都是进行了如下调用:
List list2 = new ArrayList();list2 = list1;

我可以确定的是:如果List list2=null;list2=list1;这样使用的话是list2和list1声明的对象指向一处,内存中出现的数据不会被复制一份出去。
但是List list2 = new ArrayList();list2 = list1;这种情况就不知道是不是被复制出去一份了,如果这样使用是把数据复制一份的话,就跟我的初衷有悖了。

经过自己查找资料和了解java栈和堆的内存分配原理,知道了在堆中声明对象都是要开辟内存空间的,他们每个对象都是引用出去,list1的数据内存地址会赋给list2,赋给的是引用,不是整个数据。List list2= new ArrayList();分配了内存给list2
list2=list1; list2指向list1的内存入口;原来List2的内存就回收了。
如下程序进行了验证操作:
import java.util.ArrayList;
import java.util.List;

public class Test {
public static void main(String... args){
List list1 = new ArrayList();
List list2 = new ArrayList();
List list3 = list2;
for(int i=0;i<10000;i++){
list1.add(i);
}
System.out.println(list2==list3);

list2=list1;
System.out.println(list2==list3);

}

}
这个程序的最后:list2==list3是输出false的,list2==list1输出true。在list2=list1之前list2==list3是为true的,这样看来,list2和list3初始化的对象是一样的,在堆中的引用也是一样的,list2=list1之后,把list1的引用给了list2,list2就不是原来的list2了。它的引用变的和list1的引用一致。

  • 大小: 60.2 KB
  • 大小: 35.7 KB
分享到:
评论

相关推荐

    利用cvx 解决凸优化问题实例代码.rar_matlab 凸优化_凸优化_凸优化程序_凸优化问题_利用cvx 解决凸优化问题实例

    - **定义变量**:声明优化问题中的变量,例如`cvx_var x(n)`声明一个长度为n的实数向量x。 - **设置目标函数**:定义要最小化或最大化的函数,例如`cvx_minimize(sum squares(x - b))`表示最小化向量x与b之间的...

    免费线材优化软件

    在现代工业生产中,线材加工是一个关键环节,涉及众多行业的材料切割和优化利用。金属管材、棒材、线缆等线性材料在使用前往往需要经过精确的计算和规划,以确保其高效利用,减少浪费。随着技术的发展,市场上涌现出...

    【免费百度优化软件】百度关键词优化-搜索优化

    一个良好的网站结构可以使得百度蜘蛛更容易抓取和理解网页内容。页面加载速度是用户体验的重要指标,也会影响百度的排名。随着移动互联网的发展,移动优先的索引策略已成为百度的标准,因此,确保网站具有响应式设计...

    数学建模优化建模与lingo软件求解.ppt

    在数学建模中,找到满足所有约束条件的可行解,然后在这些解中选取目标函数最优的一个,就是优化问题的核心。 无约束优化问题寻找的是使目标函数达到最小值的解,而有约束优化问题则需要同时考虑目标函数和约束条件...

    山东大学软件学院2019-2020第二学期《最优化方法》考试试题

    最优化方法是数学和工程领域中的一个重要分支,其核心目标是寻找能够满足特定约束条件下的最优解。在给定的《最优化方法》考试试题中,涉及了多个最优化问题的实例,这些题目通常要求考生运用线性规划、非线性规划...

    优化建模与lindolingo优化软件

    MATLAB优化工具箱是另一个常用的优化软件,它可以求解各种优化模型,如无约束优化、约束优化、整数规划等。 MATLAB优化工具箱包括多种优化算法,如fminunc、fminsearch、lsqnonlin等,可以解决各种优化问题。 在...

    优化建模与LINDO&LINGO;软件.rar

    1. **线性规划**:用于解决在满足一系列线性约束条件下,最大化或最小化一个线性目标函数的问题。 2. **非线性规划**:扩展了线性规划,处理包含非线性函数的目标函数和/或约束条件。 3. **整数规划**和**混合整数...

    精简型超小系统优化软件

    这款软件更是将这一理念贯彻到底,实现了在极小的体积下提供全面的系统优化服务。 系统优化的核心在于提升电脑运行速度。这款软件具备自动优化功能,意味着它可以智能分析系统的运行状态,自动调整相关设置,以达到...

    超强优化XP运行加快软件

    总的来说,"超强优化XP运行加快软件"是针对Windows XP系统性能问题的一个有效工具,它通过多种方式帮助用户提升系统的运行速度和稳定性。然而,用户应当谨慎操作,并结合其他系统维护措施,以实现最佳的优化效果。

    小鱼儿yr系统封装优化设置辅助工具V2.10.3(解压密码yrxitong.com).zip小鱼儿yr系统封装优化设置辅助工具V2.10.3.zip

    小鱼儿yr系统封装优化设置辅助工具是一款专为系统封装和优化设计的实用软件,版本号为V2.10.3。该工具的主要目的是帮助用户在进行Windows系统的封装过程中,自动化并优化一系列复杂的设置,从而提高封装效率,降低...

    最优化软件lingo软件教程下载

    **例1.1** 展示了一个线性规划(LP)问题的求解。问题的目标是最小化2x1 + 3x2,同时满足以下约束: - x1 + x2 &gt;= 350 - x1 &gt;= 100 - 2x1 + x2 在Lingo模型窗口中,只需输入相应的代码,然后点击求解按钮即可找到...

    matlab优化问题处理

    Matlab中优化问题处理是指使用Matlab软件来解决各种优化问题,包括半无限有约束的多元函数最优解、极小化极大(Minmax)问题、多目标规划问题等。这些问题通常涉及到非线性函数、线性不等式约束、线性等式约束、半...

    上网本cpu优化软件

    部分CPU优化软件也具备这一功能,有助于保持系统健康。 在选择CPU优化软件时,应注意以下几点: - 兼容性:确保软件与上网本的操作系统兼容,最好是专为低功耗设备设计的版本。 - 安全性:避免下载来源不明的软件,...

    lingo教程,Lingo函数 优化问题模型

    LINGO 是一个优秀的优化问题求解工具,能够快速地建立和解决线性和非线性优化问题。LINGO 软件提供了一种简洁的语言来建立最优化模型,并且拥有高效的求解器来快速解决问题。 LINGO 软件的主要特点包括: 1. LINGO...

    数学建模——优化问题

    数学建模中的优化问题是一个广泛而重要的领域,它在解决实际问题时发挥着关键作用。优化问题涉及到在一定约束条件下,寻找使某个目标函数达到最优(最大或最小)的决策变量值。在数学建模竞赛中,优化问题的比重逐年...

    xp网吧增强专用优化工具-非常实用的一款优化软件。绿色,小巧

    本文将深入探讨一款名为"XP网吧增强专用优化工具"的实用软件,它以其绿色小巧的特性,深受用户喜爱,尤其适用于网吧环境。 首先,让我们了解一下XP系统。XP,全称为Windows XP,是微软公司于2001年发布的一款操作...

    超好用的集装箱装柜优化软件

    在IT行业中,优化是至关重要的一个环节,尤其是在物流与供应链管理领域。"超好用的集装箱装柜优化软件"正是这样一款专为解决集装箱装载问题而设计的专业工具。这款软件以其小巧的体积和强大的功能,为用户提供了高效...

    数学建模 运输问题 最优化 产销问题

    在数学建模中,运输问题是运筹学领域的一个经典模型,它主要应用于解决资源分配、物流调度等实际问题。这个模型假设有一批货物需要从多个产地运送到多个销地,目标是在满足供需平衡的同时,最小化运输成本。在这个...

    超强系统优化工具(绿色小软件)

    在IT领域,系统优化是一个重要的概念,涉及到计算机性能的提升和资源管理的效率。"超强系统优化工具"是一款绿色小巧的软件,旨在帮助用户改善电脑的运行效率,提高整体性能,减少系统负担。这款工具在网络上广为流传...

    windows内存优化软件

    在IT领域,尤其是在服务器管理中,内存优化是一个关键的环节,因为它直接影响到系统的性能和响应速度。"Windows内存优化软件"就是专为了解决这个问题而设计的工具,它能够帮助用户更有效地管理和利用服务器的内存...

Global site tag (gtag.js) - Google Analytics