我对Java没有太多想法。
我浏览了几个链接,发现博客说“Java Primitives stored on stack”,我觉得这取决于实例变量或局部变量。
经过几个链接后,我的结论是,
类变量——原语——作为它包含的 Object 的一部分存储在堆上。
类变量——对象(用户定义)——作为它包含的对象的一部分存储在堆上。对于参考对象和实际对象都是如此。
方法变量 - 基元 - 作为堆栈帧的一部分存储在堆栈中。
方法变量——对象(用户定义)——存储在堆上,但对堆上该区域的引用作为该堆栈帧的一部分存储在堆栈中。如果 Object 中包含另一个对象,引用也可以存储在堆上。
静态方法(实际上是所有方法)以及静态变量都存储在堆中。
如果我的理解有误,请纠正我。谢谢。