代码存放细谈

来源:互联网 发布:打电话软件下载 编辑:程序博客网 时间:2024/06/03 17:04

栈。编译器自动分配释放, 存放局部变量,参数值。操作方式:栈
堆。程序员分配释放 操作方式:链表
静态区,全局区。 存放,全局变量和静态变量初始化的在一起,未初始化的在相邻区域。
文字常量区:存放常量字符串区
程序代码区,存放二进制代码。

int a = 0; //全局初始化区。int b; //全局未初始化区main(){    char s[] = "abc" //.栈。又叫堆栈,"abc"存放在常亮字符串区    p2 = new person(); 堆,// person对象是存放在堆中,但是p2还是存放在栈中}
stack 栈 heap:堆 stack:栈 系统自动分配 只有栈的剩余空间大于所申请的空间 总大小是确定的常数1M或者2M 申请速度快 heap:堆 由程序员自己申请,并指明大小 系统中有一个记录空闲内存地址的链表,遍历找第一个空间足够大的堆节点,删除空闲链表中的记录,分配空间,如果有多的空间,再放到空闲列表中。 内存大小取决于虚拟内存 申请速度慢

使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就
走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自
由度小。
使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由
度大。 (经典!)
java中的存储

寄存器 堆栈 堆 常亮存储 非RAM存储 处理器内部,最快的存区,无法控制 通用RAM,存放引用 通用内存池《ram》,存放对象 常量存储 比如数据库的东西放在其他地方
基本类型是存放在堆栈中的。
原创粉丝点击