当前位置: 代码迷 >> Java相关 >> 关于String对象的内存分配问题?
  详细解决方案

关于String对象的内存分配问题?

热度:289   发布时间:2006-12-26 10:41:15.0
关于String对象的内存分配问题?
今天看了 一下java 的书籍
看到 下面的代码:
String str=new String("abc");

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

str 能用static 来修饰吗?
搜索更多相关的解决方案: 内存  String  分配问题  对象  

----------------解决方案--------------------------------------------------------
是在堆内存分配空间的
str指向的就是"abc"的位置
str可以用static来修饰
----------------解决方案--------------------------------------------------------
那怎么来写呢?
老实编译不能通过。有错误
String static str1=new String("abc");
希望版主解答一下,谢谢
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
那这个时候的栈内存和堆内存里面分别是什么?
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
栈一般用来存放引用等地址类的数据(比如函数调用的入口,参数等),堆一般用来放置数据,对象等。(当然地址也算数据啦,你应该能体会这两者的区别)
----------------解决方案--------------------------------------------------------
谢谢! 结贴
----------------解决方案--------------------------------------------------------
  相关解决方案