0 1

奇怪了,这是为什么啊?(集合问题)0

这是一个简单的集合代码:
import java.util.ArrayList;
import java.util.List;
public class Test {
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<Integer.MAX_VALUE;i++){
			try{
				list.add(i);
			}catch(Exception e){
				e.printStackTrace();
			}
		}
	}
}

嗯,有点经验的人一看就知道问题了——“Exception in thread "main" java.lang.OutOfMemoryError: Java heap space”,但是我稍微做个小改,居然能运行好久好久啊。。。看!
import java.util.ArrayList;
import java.util.List;
public class Test {
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<Integer.MAX_VALUE;i++){
			try{
				list.add(i);
                                /**就加了这一句啊*/
                                System.out.println(list.size());
                                /**就加了这一句啊*/
			}catch(Exception e){
				e.printStackTrace();
			}
		}
	}
}

我用的是JDK1.6,开发工具是Eclipse,我一开始还以为是Eclipse的问题,然后我直接命令行运行,javac Test.java    java Test  
结果还是一样的。。。这是为什么啊?只加了一句输出情况就大不一样了???
2013年9月03日 08:46

3个答案 按时间排序 按投票排序

0 0

采纳的答案

因为在执行System.out.println(list.size()); 会像控制台打印,除了占用一点系统资源还有会频繁刷屏,占用更多的cpu,所以导致整体运行时间翻翻。机器配置越低,效果越明显。

2013年9月03日 11:09
0 0

想知道第二个究竟输出打印耗了多长时间,Integer的最大值怎么数得来哦。

2013年9月03日 11:02
0 0

第二个能运行好久好久,是因为System.out.println(),多了个向控制台打印的动作,当然比单独的list.add()耗时了,当占满对内存之前当然运行的时间长了

2013年9月03日 08:56

相关推荐

    《你必须知道的495个C语言问题》

    为什么这些问题如此频繁地出现? 60 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 60 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为0不是更简单吗? 60 5.17 说真的...

    C语言FAQ 常见问题列表

    这为什么是合法的 C 表达式呢 ? o 7.9 既然数组引用会蜕化为指针, 如果 arr 是数组, 那么 arr 和 &arr 又有什么区别呢 ? o 7.10 我如何声明一个数组指针 ? o 7.11 我如何在运行期设定数组的大小 ? 我怎样...

    你必须知道的495个C语言问题

    这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组,那么array和&array又有什么区别呢? 6.13 如何声明一个数组的指针? 动态数组分配 6.14 如何在运行时设定...

    一个奇怪的游戏的源程序(我没有明白这个游戏的意义)(8KB)...

    标题中的“一个奇怪的游戏的源程序”表明这是一个包含游戏源代码的压缩包,而描述中的“我没有明白这个游戏的意义”暗示了这个游戏可能具有非传统的玩法或者编程逻辑,这为我们提供了研究和学习非典型游戏设计的机会...

    你必须知道的495个C语言问题(PDF)

    老资源。 目录 1 声明和初始化1 1.1 我如何决定使用那种整数类型? . . . .... .... .... .... .... .... ........ .... ........1.12 这样的初始化有什么问题?...为什么这些问题如此经常地 出现? . . . . . . . . . . . . . . . . . . . ...

    XP系统 简单修复 可以解决平时遇到的奇怪问题·合适新手使用~

    综上所述,这个“XP系统简单修复”集合提供了一系列针对性的解决方案,帮助新手用户解决日常操作中遇到的种种问题,从而提升Windows XP系统的稳定性和使用体验。通过了解并运用这些方法,用户可以在遇到问题时更有效...

    JavaScript_一个脚本的集合,描述了编程语言的奇怪特性.zip

    3. `eval()`:这是一个危险的方法,因为它可以执行字符串形式的JavaScript代码,可能导致安全问题和性能下降。 4. `delete`操作符:虽然可以删除对象的属性,但不能删除数组的元素,也不能删除方法。 5. `...

    奇怪的数列奇怪的数列.doc

    从理论探索到实际应用,这些数列不仅丰富了数学的内涵,也为人们理解和解决现实生活中的问题提供了有力的工具。无论是自然界中的现象还是现代科技的发展,这些奇特的数列都在背后默默地发挥着不可或缺的作用。

    dr-js:奇怪功能的集合

    奇怪功能的集合 :file_folder: 输出包中的主要源代码为: @dr-js/core/library :可直接使用,请使用require() / exports.*=并具有Dr.browser.js @dr-js/core/module :用于重新打包,保持import / export和...

    boot-trinkets:我奇怪的启动任务和实用程序集合

    【引导小饰品:我奇怪的启动任务和实用程序集合】 在IT行业中,引导过程是操作系统启动的关键阶段,而“Boot Trinkets”则是一个独特的项目,它汇集了一系列用于定制和优化这一过程的工具和脚本。这个项目由一位对...

    北师大版小学五年级下册语文《奇怪的圣诞包裹》课件 .pdf打包整理.zip

    很抱歉,但根据您给出的信息,这个压缩包文件"北师大版小学五年级下册语文《奇怪的圣诞包裹》课件.pdf打包整理.zip"似乎包含的是教育资料,特别是小学五年级语文课程的相关课件,而不是IT技术或者专业知识。...

    javascript中一些数据类型以及奇怪的特性

    JavaScript中的一些奇怪之处在于,它将Number视为一个连续的数值范围,包括正无穷和负无穷。 - **String**:字符串,由一串字符组成,可以使用单引号或双引号定义。 - **Symbol**(ES6新增):唯一的标识符,用于...

    大班体育游戏活动教案《集合》-4页.pdf

    1. 游戏《集合》:这个游戏主要训练幼儿的反应能力和团队协作。教师会以不同方向变化站立位置,孩子们需要持竹竿跟随,调整步伐保持队形整齐。初期,教师可以控制速度帮助孩子们适应,然后逐渐加快速度并用眼神提示...

    晶格QCD中奇怪的核子电磁形状因数

    我们使用由两个简并的最大扭曲质量三叶草改良的费米子产生的轨距配置的集合来评估奇怪的核子电磁形状因数,该费米子的质量被调整为近似再现物理小子质量。 此外,我们提出了不连续的光夸克对核子电磁形状因子的贡献...

    Nf = 2 + 1 O(a)改进的Wilson费米子核子的奇怪电磁形状因子

    我们提出的结果对在协调晶格模拟集合上计算的核子的电磁形状因子具有奇怪的贡献,该集合具有O(a)改进的Wilson费米子和O(a)改进的矢量电流的Nf = 2 + 1风味。 为了估计激发态污染,研究了几种源-漏分离。 我们...

    weird-json:奇怪的编码JSON的集合。 对于鉴赏家

    对于鉴赏家来说,是一堆奇怪的,已编码的JSON。 什么? JSON超集,支持BigInts,TypedArrays,null,undefined,Symbol等。 有多种口味: deepCopy-尽可能深地克隆对象。 (限制:由于闭包不平等,不支持任何...

    in和exists的区别

    在这个例子中,`EXISTS`后面跟着的子查询(`SELECT 1 FROM Table2 WHERE Table1.a = Table2.a`)就像一个关联查询,尽管看起来像`SELECT 1`可能有点奇怪,但这个数字在这里是无关紧要的,它只是一个占位符,表示任何...

    江西省南昌市八一中学、麻丘高级中学等六校2020-2021学年高一上学期期中联考数学试题 含答案.doc

    例如,第2题涉及映射的原象,第3题比较不同函数是否相同,第9题介绍了狄利克雷函数,它是定义在实数集上,但只在有理数处取1的奇怪函数,这涉及函数的定义域和值域。 2. **集合论**:第5题涉及到集合的运算,如集合...

Global site tag (gtag.js) - Google Analytics