`
xys_777
  • 浏览: 206337 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Java中静态变量与实例变量的区别

 
阅读更多
java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量。
  在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
  在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
  例如,对于下面的程序,无论创建多少个实例对象,永远都只分配了一个staticVar变量,并且每创建一个实例对象,这个staticVar 就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。
  类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配

  内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
  而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。

  结果为:
  1
  0 (成员变量具有缺省值 而局部变量则没有)
  把代码改为:

  结果则为
  0
  1
  0
  希望通过本文的介绍,能够给你带来帮助。


分享到:
评论

相关推荐

    java中静态变量和实例变量的区别详细介绍

    本篇文章介绍了,java中静态变量和实例变量的区别。需要的朋友参考下

    Java中的静态变量静态方法静态块与静态类.docx

    Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...

    计算机后端-Java-Java核心基础-第15章 面向对象07 06. 静态变量与实例变量的对比.avi

    计算机后端-Java-Java核心基础-第15章 面向对象07 06. 静态变量与实例变量的对比.avi

    java 使用静态成员变量计算内存中实例化的对象数目

    java 使用静态成员变量计算内存中实例化的对象数目

    静态变量的导入以及集合的运用

    静态变量的导入以及集合的运用,以及综合实例。

    Java中的静态变量、静态方法与静态代码块

     可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象。  静态变量有两种情况:  ● 静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例可以直接使用  ● 静态变量...

    Java类加载器:静态变量初始化.docx

    4. 如果静态变量的赋值语句中包含实例变量的引用,则先初始化实例变量。 在上面的代码示例中,我们可以看到,Singleton 类中的静态变量 a 和 b 都是通过静态块来初始化的。在 Singleton 类的静态块中,我们首先对 a...

    java-variables-basic:Java中静态和实例变量的例子

    java变量Java中静态和实例变量的例子在这个项目中,您可以看到静态变量和实例变量是如何工作和实现的。 静态变量:属于类,所以将值保存在类中而不是对象中。 实例变量:属于对象,所以根据你设置的值在每个对象中会...

    Java实例变量、类变量、局部变量

    类变量是类中的静态变量,是用static修饰的变量;实例变量就是类中的成员变量,没有用static修饰的。 类变量是所有对象公用的,实例变量是对象私有的;当一个对象将类变量进行修改后,这个类的其他所有对象访问这个类...

    Java中的成员变量

    Java中的变量的详细介绍 。介绍成员变量和局部变量的区别。成员变量中的实例变量和静态变量的区变。

    JAVA静态方法和非静态方法的区别和实例.doc

    JAVA静态方法和非静态方法的区别和实例 静态方法和非静态方法是 Java 编程语言中两个基本概念,它们在编程实践中扮演着重要角色。了解它们的区别和使用场景对于编写高效、可维护的代码至关重要。 什么是静态方法?...

    Java中静态(static)变量、方法与实例变量、方法的规范-附件资源

    Java中静态(static)变量、方法与实例变量、方法的规范-附件资源

    学习java静态数据初始化.doc

    在 Java 中有两种类型的变量:实例变量和静态变量。实例变量是在实例创建时被初始化的,而静态变量是在类加载时被初始化的。静态变量可以被所有实例共享,而实例变量每个实例都有自己的副本。 在 Java 中,静态变量...

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    public static String p_StaticField = "父类--静态变量"; // 变量 public String p_Field = "父类--变量"; // 静态初始化块 static { System.out.println(p_StaticField); System.out.println("父类...

    Java中static变量作用和用法步骤

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。  被static修饰的成员变量和成员方法独立于该类的任何对象。也是说,它不...

    python“静态”变量、实例变量与本地变量的声明示例

    这里的静态变量是借用Java中静态变量的概念(不知道Python中的具体概念是什么),指既可以通过类名直接进行访问,也可以通过类的实例进行访问的变量。这种变量的声明很简单,直接在类代码块中设置变量即可,不需要...

    20道JAVA面试题.docx

    4、Java中的静态变量和实例变量有什么区别? 5、Java中的重载和重写有什么区别? 6、Java中的抽象类和接口有什么区别? 7、Java中的线程是什么? 8、Java中的synchronized关键字有什么作用? 9、Java中的异常是什么...

    华为java技术笔试题(2016)含答案

    本文将对华为 Java 技术笔试题(2016)中的内容进行总结和分析,涵盖了 Java 基础、String、StringBuffer 与 StringBuilder 的区别、静态变量和实例变量的区别、继承和接口的区别、HashMap 和 Hashtable 的区别、...

    Java static(静态变量)和私有化功能与用法分析

    主要介绍了Java static(静态变量)和私有化功能与用法,结合具体实例形式分析了Java static(静态变量)和私有化的相关概念、原理、使用方法及操作注意事项,需要的朋友可以参考下

    Java初始化顺序1

    在 Java 中,变量可以分为两类:类变量(静态变量)和实例变量(对象变量)。类变量是使用 static 关键字修饰的变量,它们属于类,而不是对象。实例变量则是没有使用 static 关键字修饰的变量,它们属于对象私有。 ...

Global site tag (gtag.js) - Google Analytics