为什么在没有任何类实例的情况下可以访问所有静态方法和变量,而非静态成员需要实例才能访问。
答案 0 :(得分:2)
实际上,有一个类对象代表JVM中的每个类。因此,行为什么在没有任何类的实例的情况下可以访问所有静态方法和变量是不正确的。
JVM创建表示类的class objects
(不同于class instances
)。
示例:String.class
,Class.class
等
答案 1 :(得分:0)
当我们创建一个类,意味着我们正在创建相同类型的对象(实例)时,对于这些对象,方法保持不变,但数据和内存位置会发生变化,并且每个方法都是唯一的object.But当我们使用' 静态'变量或方法,它在整个程序中创建仅一个常见复制。因此对于所有实例/对象都是相同的,并且静态方法/变量中所做的更改对所有对象都是可见的。因此,我们可以直接使用它,也可以不使用类的实例。同样,非静态成员对于每个对象都是不同的,所以我们需要类的实例。