Java RAM&;静态变量的好处

Java RAM&;静态变量的好处,java,Java,1) 为什么java存储在RAM中而不是存储在硬盘中。 2) 静态变量比正常变量有什么好处。普通变量是否因为类的对象有自己的副本而占用更多的内存空间 Java不是“未存储在硬盘中”。Java解释器是从永久存储器加载的。以及组成Java程序的类文件。在运行时,处理器必须使用RAM(不管分页),这就是计算机的工作方式 如果一个变量是静态的,内存中将有一个或零个副本。如果它是实例变量,则类的每个实例都有一个副本。是的,如果类被实例化多次,静态变量将使用更少的内存 为什么java存储在RAM中而不是

1) 为什么java存储在RAM中而不是存储在硬盘中。 2) 静态变量比正常变量有什么好处。普通变量是否因为类的对象有自己的副本而占用更多的内存空间

  • Java不是“未存储在硬盘中”。Java解释器是从永久存储器加载的。以及组成Java程序的类文件。在运行时,处理器必须使用RAM(不管分页),这就是计算机的工作方式
  • 如果一个变量是静态的,内存中将有一个或零个副本。如果它是实例变量,则类的每个实例都有一个副本。是的,如果类被实例化多次,静态变量将使用更少的内存
为什么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
所有
Bicycle实例,该属性只有一个,所有运行的程序都存储在内存中,而与编程语言无关。我想你的意思是为什么要使用.class文件而不是.exes。也就是说,为了可移植性,运行时基本上会在运行时将.class文件转换为.exe文件,以便相同的二进制文件可以在任何平台上运行,而不必为每个平台提供不同的文件


是的,实例变量比类变量使用更多的内存,因为每个实例都有自己的副本。静态变量使所有实例共享同一副本。如果你考虑一个人,每个人都有他们自己的名字(实例变量),而人的眼睛对每个人都是恒定的,除非出生缺陷和意外(类变量)。类变量和实例变量的用途截然不同。

您的第一个问题不清楚,似乎您已经知道第二个问题的答案。所有正在运行的程序都存储在硬盘上。仅为内存中的所有对象创建了一个静态变量的副本。@Ram Bhat:不,正在运行的程序不在磁盘上。