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