标题:关于String对象的内存分配问题?
只看楼主
luoxian_2003
Rank: 1
等 级:新手上路
威 望:2
帖 子:163
专家分:0
注 册:2006-2-22
 问题点数:0 回复次数:7 
关于String对象的内存分配问题?
今天看了 一下java 的书籍
看到 下面的代码:
String str=new String("abc");

我想问的是 在这一句代码中的abc 是在堆内存中分配空间来保存吗? 栈空间只保存一个地址变量str吗?
str 是指向堆内存的"abc"的首地址吗?

str 能用static 来修饰吗?
搜索更多相关主题的帖子: 内存 String 分配问题 对象 
2006-12-26 10:41
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
是在堆内存分配空间的
str指向的就是"abc"的位置
str可以用static来修饰

可惜不是你,陪我到最后
2006-12-26 10:45
luoxian_2003
Rank: 1
等 级:新手上路
威 望:2
帖 子:163
专家分:0
注 册:2006-2-22
得分:0 
那怎么来写呢?
老实编译不能通过。有错误
String static str1=new String("abc");
希望版主解答一下,谢谢

天地有正气,凛烈万古存。
2006-12-26 11:06
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

static String str1=new String("abc");


可惜不是你,陪我到最后
2006-12-26 11:10
luoxian_2003
Rank: 1
等 级:新手上路
威 望:2
帖 子:163
专家分:0
注 册:2006-2-22
得分:0 
那这个时候的栈内存和堆内存里面分别是什么?

天地有正气,凛烈万古存。
2006-12-26 11:44
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

栈里面存着引用本身,堆里面存着数据


可惜不是你,陪我到最后
2006-12-26 12:07
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
得分:0 
栈一般用来存放引用等地址类的数据(比如函数调用的入口,参数等),堆一般用来放置数据,对象等。(当然地址也算数据啦,你应该能体会这两者的区别)

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2006-12-26 19:06
luoxian_2003
Rank: 1
等 级:新手上路
威 望:2
帖 子:163
专家分:0
注 册:2006-2-22
得分:0 
谢谢! 结贴

天地有正气,凛烈万古存。
2006-12-27 21:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-112150-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.118587 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved