栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java原语会放在堆栈还是堆上?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java原语会放在堆栈还是堆上?

本地定义的基元将在堆栈中。但是,如果将原语定义为对象实例的一部分,则该原语将位于堆上。

public class Test {    private static class HeapClass {        public int y; // When an instance of HeapClass is allocated, this will be on the heap.    }    public static void main(String[] args) {        int x=1; // This is on the stack.    }}

关于更新:

对象没有自己的堆栈。在我的示例中,

int y
实际上是的每个实例的一部分
HeapClass
。只要分配了HeapClass的实例(例如
newTest.HeapClass()
),就会将HeapClass的所有成员变量添加到堆中。因此,由于的实例
HeapClass
是在堆上分配的,因此
inty
将作为实例的一部分在堆上
HeapClass

但是,在任何方法的主体中声明的所有原始变量都将 位于stack上

如您在上面的示例中所见,

int x
它在堆栈中,因为它是在方法主体中声明的-而不是作为类的成员声明的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449466.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号