美文网首页
Java内存(栈、堆)

Java内存(栈、堆)

作者: 蜻鸣 | 来源:发表于2019-03-04 11:28 被阅读0次

    Java把内存分为两种,一种是栈内存,一种是堆内存

    栈内存:在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。定义一个变量就在栈中给这个变量分配空间,当超出这个变量的作用域后就自动释放这个空间作为他用


    堆内存:堆内存用来存放new出来的对象和数组。在堆中分配的内存,由Java虚拟机自动垃圾回收器来进行管理。在堆中定义了一个数组或者实例化了一个对象之后,还可以在栈中定义一个特殊的变量,即引用变量。保存的是堆中数组或对象的首地址,就可以使用栈内存中的引用来访问堆内存中的数组或者对象,


    但是引用变量也是普通变量,当超出它的作用域时便会被释放。但是在堆中的对象或数组即使超出了产生它的代码块也不会被释放,当没有引用变量指向它时变成垃圾,不能再被使用,但是仍然占用内存,直到被垃圾回收器释放掉

    相关文章

      网友评论

          本文标题:Java内存(栈、堆)

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