蓉杠学习网

j***a语言内存分配,j***a的内存分配

大家好,今天小编关注到一个比较意思的话题,就是关于java语言内存分配问题,于是小编就整理了2个相关介绍Java语言内存分配的解答,让我们一起看看吧。

  1. 用java写的软件为什么在运行时候程序占用内存会越来越大?
  2. 在Java里堆内存和栈内存有什么区别?

JAVA写的软件什么运行时候程序占用内存会越来越大?

任何语言都是这样,特别是j***a有个oop面向对象编程的概念,在运行的过程中,会不断的给对象在内存中开拓新的内存地址,并且将内存放在改内存地址指向的内存栈中。

随着项目的运行,并着对象的出现,内存的占用也越来越大。

java语言内存分配,java的内存分配>
图片来源网络,侵删)

直到j***a中的垃圾处理机制认为该对象成了废品之后,然后将该对象从内存中清理出来。

在J***a里堆内存和栈内存有什么区别

这个来自于古老的C语言概念,凡是在函数中用基本数据类型string除外)申请的局部变量,也就是函数退出则这些变量就消亡的变量,包括函数自己参数定义,都用栈内存的方式构造内存,这样做的目的是进入该函数、变量值进栈,函数退出自动退栈,这样就自动完成了内存申请和回收,这些栈空间的变量只能被该函数自己引用,其他函数不能引用。

而C语言的全局变量、J***A的对象,也就是说如C语言用malloc()函数,C++、J***A等用new构造的对象,都在堆方式组织的内存中,这样的目的是让很多函数都能引用到这些存储空间的值或者对象。存储在堆空间的对象和数据,需要编程者按需要释放,如C语言用free(),C++则要析构函数,J***a就有自动回收机制。

java语言内存分配,java的内存分配
(图片来源网络,侵删)

随手写的,有错勿喷。

到此,以上就是小编对于j***a语言内存分配的问题就介绍到这了,希望介绍关于j***a语言内存分配的2点解答对大家有用。

java语言内存分配,java的内存分配
(图片来源网络,侵删)

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/34242.html

分享:
扫描分享到社交APP