Topic: 各位我请教关与堆和栈的问题 |
Print this page |
1.各位我请教关与堆和栈的问题 | Copy to clipboard |
Posted by: jeff_it Posted on: 2006-05-29 00:45 1.我个人理解是 int a=10; int b=20; a存在栈里10存在堆里. 当我们创建一个对象aa时. aa存在内存的哪儿一部分? 2.我们现在所说的堆和栈是不是都是指的jvm里面的栈和垃圾堆? 小弟很菜还望大家指教. |
2.Re:各位我请教关与堆和栈的问题 [Re: jeff_it] | Copy to clipboard |
Posted by: lisliefor Posted on: 2006-05-29 15:16 不太明白里面的细节,帮忙顶一下! |
3.Re:各位我请教关与堆和栈的问题 [Re: jeff_it] | Copy to clipboard |
Posted by: hong_sea Posted on: 2006-05-29 15:49 JAVA中堆(heap)和栈(stack)是六种存储方式中最常用的两种,可以这样的理解: 首先:栈中存放的数据处理器是需要知道存放时间和占用空间大小的,堆中的数据处理器是不需要知道的,所以对于我们操作栈要比操作堆的效率要慢一些; 其次:我们在定义一个对象时,如果不是采用NEW的方式,数据将被存储在栈中,采用NEW的方式,对象本身的数据存储在堆中,对象的引用将存储在栈中。例如,我们定义一个基本性别的数据,如 int i = 0;i直接存储在栈中。Date D = new Date(); 这样,D对象数据存储在堆中,当时D的引用存储在栈中,通过栈中的引用来操作对象。 最后:基本型别的定义时都是直接在栈中,可以采用包装类来new一个,这样就和普通对象一样了。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |