我们假设一个方法被频繁的调用,而这个方法又会创建出大量的对象,这些对象都在堆上创建这样就会引发频繁的Gc。显然这样是不好的。
而有栈上分配来解决这个问题。
栈上分配的好处就是当方法销毁时对象一同销毁 就不需要gc 从而解决该问题
逃逸分析
对于栈上分配我们要求对象是内存占用小的 且不逃逸的 如果该实例不被外部方法调用 或 被该方法返回的话 则我们说该对象是不逃逸的
如果对象的内存占用过大
JVM不会创建该对象。将该对象成员变量分解若干个被这个方法使用的成员变量所代替,这些代替的成员变量在栈帧或寄存器上分配空间。
换句话说,我们可以理解为:把对象拆分成若干小块分开存储。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99643.html