当前位置: 首页 > 面试题库 >

Java中的实例和类(静态)变量之间有什么区别

冯新知
2023-03-14
问题内容

这个问题的标题实际上是先前的考试问题,我正在寻求澄清/答案。

请注意,我正在学习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。



 类似资料:
  • 问题内容: 此Java程序包含一个静态变量。但是我无法理解公共静态变量和私有静态变量之间的区别。 问题答案: 公共变量可在代码中的 任何 位置访问- 私有变量仅可在类本身内部访问。在这种情况下,您可以在类中使用它,所以很好。 请注意,静态变量是完全独立的问题-方法和类具有与变量相同的可访问性。 还有其他级别的访问权限- 和默认的“包”访问权限(无法明确指定)。有关更多详细信息,请参见Java语言规

  • 这个java程序包含一个静态变量。但是我不明白公共和私有静态变量之间的区别。

  • 问题内容: 我是Java编程的新手。谁能说出Java中的全局变量和局部变量之间的区别? 问题答案: 您的问题有点困惑,因为您在标题中引用的是static / global,而在问题中引用的是global / local。 变量绑定到一个 类 , 每个类 将有 一个实例 。 类可以具有成员变量,并且该类的 每个实例 将有 一个实例 。 请注意,如果您有多个类加载器,这将变得更加复杂。在这种情况下,您

  • 问题内容: 我已经在Python的Stack Exchange上阅读了很多答案,为什么在类中使用“ self”? 阅读这些答案后,我了解到实例变量对于该类的每个实例都是唯一的,而在所有实例之间共享类变量。 在玩耍时,我发现这段代码给出了输出: 但是,此代码作为输出,在我看来应为: 为什么我运行时类变量没有更新?我没有编程方面的经验,所以请原谅。 问题答案: 类变量 被 实例属性 遮盖 。这意味着在

  • 问题内容: 通常,最终静态成员,尤其是变量(或静态最终变量,当然可以以任何顺序使用,而不会重叠含义)已广泛用于Java接口中,以定义实现类的 协议行为 ,这意味着实现该类的类(继承)接口必须包含该接口的所有成员。 我无法区分 final 和 final静态 成员。final静态成员是一个声明为final或其他东西的静态成员?在哪些特定情况下应专门使用它们? 永远不能在方法内部,静态方法内部或实例方

  • 问题内容: 除了范围和存储差异外,java中实例变量和局部变量之间是否还有其他主要区别? 问题答案: 我能想到的一件事: 实例变量具有默认值,即如果为对象引用,则为null;如果为int,则为0。 局部变量不会获取默认值,因此需要进行显式初始化(​​如果您未这样做,则编译器通常会抱怨)。