u010937342 2013-06-07 13:56 采纳率: 33.3%
浏览 1694
已采纳

内存中的"堆"和"栈"的知识

Public static void changeStr(String str){
str="welcome";
}
Public static void main(String[] args) {

    String str="1234";
    changeStr(str);
    System.out.println(str);
}

以这个体为例谁能给我解释一下关于 “堆”,“栈”的详细情况!谢谢

  • 写回答

2条回答 默认 最新

  • kity 2013-06-07 15:04
    关注

    栈中存放基本数据类型(或者叫内置类型)以及引用类型(或者叫对象句柄),而堆中存放对象数据。
    String 比较特殊,在栈中查找有没有存放值为"1234"的地址,如果没有,则开辟一个存放字面值为"1234"的地址,接着创建一个新的String类的对象o str为引用在栈上

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站