美文网首页
Java中Heap与Stack的区别

Java中Heap与Stack的区别

作者: 尚学先生 | 来源:发表于2017-03-12 13:50 被阅读0次

    1) Heap是 Stack的一个子集。

    2) Stack存取速度仅次于寄存器,Stack里面的数据可共享,但是其中数据的大小和生存期必须在运行前确定。

    3) Heap是运行时可动态分配的数据区,从速度看比Stack慢,Heap里面的数据不共享,大小和生存期都可以在运行时再确定。

    4) new关键字 是运行时在Heap里面创建对象。每new一次都一定会创建新对象,因为堆数据不共享。

    Eg: String str1= new String("abc");   (1)

    String str2= "abc";               (2)

    【java编程开发免费学习资料,需要+我微信领取:tangniu520666,备注“4”】

    str1是在Heap里面创建的对象。

    str2是指向Stack里面值为“abc”的引用变量,语句(2)的执行,首先会创建引用变量str2, 再查找Stack里面有没有“abc”,有则将 str2指向 “abc”,没有则在Stack里面创建一个“abc”,再将str2指向“abc”。

    相关文章

      网友评论

          本文标题:Java中Heap与Stack的区别

          本文链接:https://www.haomeiwen.com/subject/mabtnttx.html