您的位置:首页 > 编程语言 > Java开发

java中内存分配的问题

2012-04-25 22:02 260 查看
java中内存主要包含4块,即heap(堆内存)、stack(栈内存)、data segment(静态变量或是常量存放区)、codesegment(方法区).

1,heap :放的是new出来的对象的内存空间,只包含成员变量的内存空间

2,stack:放的是局部变量,基本数据类型放的是值,对象类型放的是其自身在heap的地址

3,data segment:静态、常量区:存放的是静态变量(类变量)或是常量。

4,code segment:存放的是对象的方法。因此即使new出多个对象也是只是存在一个方法。

A a = new A();

A b = new A();

第一句会导致heap开辟一个空间存放A的数据,a 是放在stack中,放的是heap的地址,如果A有方法,也会在code segment

第二句只在heap开辟A的空间,在stack放b所指向的地址,不会增加code segment的东西
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: