这个问题的题目实际上是一个以前的试题,我期待澄清/一个答案。
请注意,我学习Java和我熟悉它的语法。
据我所知,这个问题可能听说过,如果是问有人可以告诉我在哪里我可以如果有可能访问的问题? 同时,请接受我的道歉,如果是这种情况。 要说明的是我一直在研究这方面的,我自己的理解是,实例变量属于对象/某个类的实例(模板),并在有需要时可以在实例/对象中被改变(突变)。
类变量是根据需要仅具有一个拷贝,并且可以访问,但不能被修改(突变?),但一个变量是提供给所有的类?
我在这里在正确的轨道上?
此外,究竟是什么“静态”吗? 是一个类的实例,只有静态的,如果它位于一个类的实例主内?
非常感谢。
静态变量是由类的所有实例共享,而实例变量是唯一的类的每个实例。
静态变量的存储是在编译时分配的,他们在加载时加载,并在类的初始化时初始化。 在一个实例变量的情况下,所有上述在运行时进行。
下面是一个有用的例子:
实例变量是每个对象一个:每个对象都有自己的实例变量的副本。
public class Test{
int x = 5;
}
Test t1 = new Test();
Test t2 = new Test();
T1和T2都将有自己的x的副本。
静态变量是每类中的一个:即类共享相同的静态变量的每一个对象。
public class Test{
public static int x = 5;
}
Test t1 = new Test();
Test t2 = new Test();
T1和T2都将共享相同的x。
你可以让你的类的多个实例。 当你声明一个实例变量,每个实例获取变量自己独特的副本。 当你声明一个静态变量,它是所有场合的同一变量和值。
public class Foo
{
public int instanceVariable;
public static int staticVariable;
}
Foo instance1 = new Foo();
Foo instance2 = new Foo();
instance1.staticVariable = 1;
instance1.instanceVariable = 2;
instance2.instanceVariable = 3;
instance1.staticVariable == 1 // true
instance2.staticVariable == 1 // true
instance1.instanceVariable == 2 //true
instance2.instanceVariable == 3 //true
静态变量存储被它是在所定义的类。如果如由名称实例变量everytime.When创建新对象创建它的一个新的副本的所有实例(或者非实例)之间共享的值。
文章来源: What is the difference between an instance and a class (static) variable in Java [closed]