1)为什么java被存储在RAM中,而不是存储在硬盘中。 2)静态变量比正常变量有什么好处。由于类的对象拥有自己的副本,所以普通变量是否占用更多的内存空间。Java-RAM&静态变量的好处
0
A
回答
4
- Java不是“未存储在硬盘中”。 Java解释器从永久存储中加载。正如构成Java程序的类文件一样。在运行时,所有内容都必须放在RAM中(以及无视分页)以供处理器使用 - 这就是计算机的工作方式!
- 如果一个变量是静态的,在内存中将会有一个或零个副本。如果它是一个实例变量,则每个类的实例都有一个副本。所以是的,如果一个类实例化了多次,一个静态变量会占用更少的内存。
2
为什么Java是存储在RAM中,而不是存储 硬盘
如果你在谈论的变量,在存储RAM变量允许快速读/写访问,数量级比磁盘更快。 Java也可以访问磁盘。
静态变量 比正常变量有什么好处。
静态变量是不依赖于一个类的特定实例,所以可以不必创建一个对象访问,但静态变量将每一段代码具有对它的引用之间共享。
是否正常变量占用更多的内存 空间,因为类 对象有它自己的拷贝。
每次你实例化一个对象时,它都会占用内存空间。有时它正是你需要的。
实施例:
public class Bicycle{
private int cadence;
private int gear;
private int speed;
// add an instance variable for the object ID
private int id;
// add a class variable for the number of Bicycle objects instantiated
private static int numberOfBicycles = 0;
......
}
每次做一个new Bicycle()
您将创建一个新的对象时间(因而使用多个存储器)与除了numberOfBicycles
其所有属性,会有只有一个该属性的对于全部Bicycle
的实例。
1
无论编程语言如何,所有正在运行的程序都存储在内存中。我假设你的意思是为什么使用.class文件而不是.exes。这是为了便于携带,运行时基本上将.class文件转换为运行时的.exe文件,因此可以在任何平台上运行相同的二进制文件,而不必为每个平台提供不同的文件。
是的,实例变量比类变量使用更多的内存,因为每个实例都有自己的副本。静态变量具有所有实例共享相同的副本。如果你考虑一个人,每个人都有他们自己的名字(实例变量),而人们拥有的#的眼睛对每个人都是恒定的,除非出生缺陷和事故(类变量)。类和实例变量的用途非常不同。
相关问题
- 1. 处理整个类的静态变量
- 2. 静态变量
- 3. 静态变量
- 4. 静态变量
- 5. 静态变量
- 6. 静态变量
- 7. 静态变量
- 8. 如何处理静态最终变量
- 9. 试图访问另一个静态变量的静态变量
- 10. PHP:引用静态变量中的另一个静态变量
- 11. 同一类中的Java静态变量和非静态变量
- 12. 静态变量ASP.NET
- 13. JavaScript - 静态变量?
- 14. C++静态变量
- 15. @SuppressWarnings - 静态变量
- 16. PHP静态变量
- 17. C++ - 静态变量
- 18. C++静态变量
- 19. PHP中的静态变量变量
- 20. C++静态变量动态
- 21. PropertyChangedEventHandler静态变量不变
- 22. 非静态/静态变量错误
- 23. 在C99中使用静态变量初始化静态变量
- 24. 将静态变量分配给非静态变量
- 25. 静态全局变量和静态局部变量
- 26. C++中的静态变量
- 27. Monodroid中的静态变量
- 28. ASP.NET中的静态变量
- 29. 州静态变量的
- 30. asp.net中的静态变量?
你的第一个问题还不清楚,你似乎已经知道第二个问题的答案。 – Dolph 2010-07-11 07:17:40
所有正在运行的程序都在硬盘上。只为内存中的所有对象创建一个静态varibale副本.. – Laz 2010-07-11 07:21:36
@Ram Bhat:不,运行的程序不在磁盘上。 – Dolph 2010-07-11 07:33:09