可能重复:
内存中的Java/C#方法表示
我想知道我是否在java中有一个对象,它是如何存储实例方法的?对象是否有指向它的实例方法的指针?
例:
public class MyObject {
private int x;
private int y;
[..]
}
Run Code Online (Sandbox Code Playgroud)
如果我计划MyObject在内存中保留很多(例如,对象的一棵大树),如果除了x的getter和yi定义计算总和的实例方法,它会在内存方面产生显着差异吗?
我正在尝试解决问题,我应该添加更多实例方法或使用getter和setter在另一个类中进行计算.
SJu*_*n76 12
对象需要内存以用于其属性(注意:对于对象,存储的属性是指向真实对象的指针,该指针位于内存中的其他位置).方法(代码)不需要额外的内存,因为它们与类一起存储.
IE:
public class MyClass1 {
private int myNumber;
}
Run Code Online (Sandbox Code Playgroud)
和
public class MyClass2 {
private int myNumber;
public int MyMethod1() {
}
public int MyMethod2() {
}
public int MyMethod3() {
}
....
public int MyMethod1000() {
}
}
Run Code Online (Sandbox Code Playgroud)
每个实例使用相同的内存.
| 归档时间: |
|
| 查看次数: |
9298 次 |
| 最近记录: |