常量放在内存什么地方? 比如说 String str = "aa"; int i = 2;"aa" ,2 都放在内存什么地方最后能略加点说明 呵呵 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以参考一下http://topic.csdn.net/u/20100606/10/4b6f8e50-7af2-4552-8148-0e0d8e4813f2.html中五楼的回复。对象分为全局对象、静态对象、栈中分配的对象,以及堆中分配的对象。其中:全局对象和静态对象存储在静态存储区;局部对象存储在栈中;动态对象存储在堆中。下面举例说明。//test.hclass A{}extern A g_obj; //全局对象g_ojb的声明//test.cpp#include "test.h"A g_ojb; //全局对象g_ojb的定义,存储在静态存储区int fun(){ static A static_obj; //静态对象的声明和定义,存储在静态存储区 A local_obj; //局部对象local_obj的声明和定义,存储在栈,其生命周期在fun函数退出时结束,也就是说fun函数return之后,会自动调用local_obj的析构函数来释放资源 A* p_dynamic_obj = new A(); //p_dynamic_obj指向动态对象,存储在堆中,需要通过delete p_dynamic_ojb来释放其所指向的对象 return 0;} 可以拿JAVA说下嘛?c不熟悉...... 额。我的粗见是:str是放在栈内存,aa是放在堆内存然后int i=2;中的2也是放在堆内存一般引用数据类型都放在栈内存,而其内容则放在堆内存。当然这也是相对的。比如String[] str;其中str就是一个引用数据类型(String 数组),其值是放在栈内存,而当我们有:str=new String[2];str[1]="a";时,其中str[1]也是就是放在堆内存(引用),相应的str[1]="a"中的a是也是放在堆内存;表达得不太好。例子也是临时想出来的。呵呵。。说得不好见怪了。 内存分为heap、satck、data segment、code segment所以new出来的东西放在heap里面,局部变量放在stack里面,至于常量、静态变量是放在data segment里面的所以你说的‘aa’和2是放在data segment里,str和i持有引用放在stack里面 那个说的很好了啊·这不是C是JAVA 用正则表达式获取字符串中的URL和标题 这段代码有三个错误,请问怎么改就正确了? 为什么是Graphics画图只画出最后的结果 而画不出循环时的结果 列名 'kshj' 无效 我是个初学者 ,向大家请教个问题!先谢谢了! 关于当程序打包成jar包后.spring资源文件未读取到的问题 紧急求救,关于weblogic过滤器的小问题,谢谢!奖励500分 张孝祥的Java就业培训教程,好动东呀,自己看当然不合适,还是大家一起看吧 请关注Java中位运算与补码的问题!谢谢! 想看一下吗?有关swing 组件的问题? 求助,JDK配置始终不行 java中后缀名为“form”的文件是什么东西
http://topic.csdn.net/u/20100606/10/4b6f8e50-7af2-4552-8148-0e0d8e4813f2.html
中五楼的回复。对象分为全局对象、静态对象、栈中分配的对象,以及堆中分配的对象。
其中:
全局对象和静态对象存储在静态存储区;
局部对象存储在栈中;
动态对象存储在堆中。下面举例说明。
//test.hclass A
{
}extern A g_obj; //全局对象g_ojb的声明//test.cpp
#include "test.h"A g_ojb; //全局对象g_ojb的定义,存储在静态存储区int fun()
{
static A static_obj; //静态对象的声明和定义,存储在静态存储区 A local_obj; //局部对象local_obj的声明和定义,存储在栈,其生命周期在fun函数退出时结束,也就是说fun函数return之后,会自动调用local_obj的析构函数来释放资源 A* p_dynamic_obj = new A(); //p_dynamic_obj指向动态对象,存储在堆中,需要通过delete p_dynamic_ojb来释放其所指向的对象 return 0;
}
其中str就是一个引用数据类型(String 数组),其值是放在栈内存,而当我们有:str=new String[2];
str[1]="a";时,其中str[1]也是就是放在堆内存(引用),相应的str[1]="a"中的a是也是放在堆内存;
表达得不太好。例子也是临时想出来的。呵呵。。说得不好见怪了。
所以new出来的东西放在heap里面,局部变量放在stack里面,至于常量、静态变量是放在data segment里面的
所以你说的‘aa’和2是放在data segment里,str和i持有引用放在stack里面