我最近一直在阅读java中的内存分配方案,并且由于我从各种来源阅读,因此有很多疑问.我已经收集了我的概念,并且我会要求完成所有要点并对它们进行评论.我开始知道内存分配是特定于JVM的,所以我必须事先说,我的问题是Sun特定的.
谢谢你经历这个!
例如:
class A {
static int i=0;
static int j;
static void method() {
// static k=0; can't use static for local variables only final is permitted
// static int L;
}
}
Run Code Online (Sandbox Code Playgroud)
这些变量将存储在Java,堆中还是堆栈内存中?它们是如何存储的?
可能重复:
内存中的Java/C#方法表示
我想知道我是否在java中有一个对象,它是如何存储实例方法的?对象是否有指向它的实例方法的指针?
例:
public class MyObject {
private int x;
private int y;
[..]
}
Run Code Online (Sandbox Code Playgroud)
如果我计划MyObject在内存中保留很多(例如,对象的一棵大树),如果除了x的getter和yi定义计算总和的实例方法,它会在内存方面产生显着差异吗?
我正在尝试解决问题,我应该添加更多实例方法或使用getter和setter在另一个类中进行计算.