我是Java新手,最近我研究过静态变量。我知道,静态变量内存只分配一次。这意味着它将节省大量内存。我的问题是,如果静态变量节省内存,为什么不将每个变量声明为静态。这将在创建应用程序时节省大量内存。请原谅我,如果这似乎是一个愚蠢的问题,但实际上我只是有点好奇。
答案 0 :(得分:1)
这是OOP的基础知识。看一个例子:
class Person {
public String name = "Foo";
}
字段name
不是静态的,这意味着类Person
的对象不会共享它,每个人都会拥有拥有的名称。当你改变一个人的名字时,其他人将不受影响。但如果你把它变成静态的:
class Person {
public static String name = "Foo";
}
这意味着,所有人都有相同的名字,这有点奇怪,你同意吗?)
答案 1 :(得分:0)
创建属性/变量的关键在于,您希望将它们作为"特征"对象。例如,如果你有一个班级" Car",也许你想要一个变量来引用汽车的颜色。
问题在于" Car" (在现实世界中它将是每辆不同的汽车)都有一个价值,所以每个人都必须是一个独立的"变量
您可以将静态变量用于此类的所有对象共享的那些变量。例如,一个计数器来确定那里有多少辆汽车。此变量属于名为" Car"的类,但不属于该类的任何特定实例。
答案 2 :(得分:0)
每个类级别创建静态变量。创建类的Object时不会创建它。对于类的每个实例或对象,只有一个静态成员变量的值。这违背了拥有对象和围绕对象创建应用程序的目的。
答案 3 :(得分:0)
是的,它将在生命周期中分配一次内存,称为类变量。可以使用类直接访问类变量,而无需创建实例。这意味着可以从任何地方和任何地方访问它。此外,内存分配意味着即使变量未在代码中的许多位置使用,只要程序正在运行并且会占用不必要的空间,它将永远保留在内存中。