1)为什么java存储在RAM中而不存储在硬盘中。 2)静态变量比正常变量有什么好处。普通变量是否占用更多的内存空间,因为类的对象拥有自己的副本。
答案 0 :(得分:4)
答案 1 :(得分: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
之外的所有属性,将会有 [{1}}的所有个实例的属性只有一个。
答案 2 :(得分:1)
无论编程语言如何,所有正在运行的程序都存储在内存中。我假设你的意思是为什么使用.class文件而不是.exes。这是为了便携性,运行时基本上将.class文件在运行时转换为.exe,因此可以在任何平台上运行相同的二进制文件,而不必为每个平台提供不同的文件。
是的,实例变量使用的内存多于类变量,因为每个实例都有自己的副本。静态变量使所有实例共享同一个副本。如果你考虑一个人,每个人都有自己的名字(实例变量),而人们拥有的眼睛#对每个人都是不变的,除非出生缺陷和事故(类别变量)。类和实例变量的用途非常不同。