java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量。
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
例如,对于下面的程序,无论创建多少个实例对象,永远都只分配了一个staticVar变量,并且每创建一个实例对象,这个staticVar 就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。
类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配
内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
结果为:
1
0 (成员变量具有缺省值 而局部变量则没有)
把代码改为:
结果则为
0
1
0
希望通过本文的介绍,能够给你带来帮助。
分享到:
相关推荐
本篇文章介绍了,java中静态变量和实例变量的区别。需要的朋友参考下
Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...
计算机后端-Java-Java核心基础-第15章 面向对象07 06. 静态变量与实例变量的对比.avi
java 使用静态成员变量计算内存中实例化的对象数目
静态变量的导入以及集合的运用,以及综合实例。
可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象。 静态变量有两种情况: ● 静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例可以直接使用 ● 静态变量...
4. 如果静态变量的赋值语句中包含实例变量的引用,则先初始化实例变量。 在上面的代码示例中,我们可以看到,Singleton 类中的静态变量 a 和 b 都是通过静态块来初始化的。在 Singleton 类的静态块中,我们首先对 a...
java变量Java中静态和实例变量的例子在这个项目中,您可以看到静态变量和实例变量是如何工作和实现的。 静态变量:属于类,所以将值保存在类中而不是对象中。 实例变量:属于对象,所以根据你设置的值在每个对象中会...
类变量是类中的静态变量,是用static修饰的变量;实例变量就是类中的成员变量,没有用static修饰的。 类变量是所有对象公用的,实例变量是对象私有的;当一个对象将类变量进行修改后,这个类的其他所有对象访问这个类...
Java中的变量的详细介绍 。介绍成员变量和局部变量的区别。成员变量中的实例变量和静态变量的区变。
JAVA静态方法和非静态方法的区别和实例 静态方法和非静态方法是 Java 编程语言中两个基本概念,它们在编程实践中扮演着重要角色。了解它们的区别和使用场景对于编写高效、可维护的代码至关重要。 什么是静态方法?...
Java中静态(static)变量、方法与实例变量、方法的规范-附件资源
在 Java 中有两种类型的变量:实例变量和静态变量。实例变量是在实例创建时被初始化的,而静态变量是在类加载时被初始化的。静态变量可以被所有实例共享,而实例变量每个实例都有自己的副本。 在 Java 中,静态变量...
public static String p_StaticField = "父类--静态变量"; // 变量 public String p_Field = "父类--变量"; // 静态初始化块 static { System.out.println(p_StaticField); System.out.println("父类...
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也是说,它不...
这里的静态变量是借用Java中静态变量的概念(不知道Python中的具体概念是什么),指既可以通过类名直接进行访问,也可以通过类的实例进行访问的变量。这种变量的声明很简单,直接在类代码块中设置变量即可,不需要...
4、Java中的静态变量和实例变量有什么区别? 5、Java中的重载和重写有什么区别? 6、Java中的抽象类和接口有什么区别? 7、Java中的线程是什么? 8、Java中的synchronized关键字有什么作用? 9、Java中的异常是什么...
本文将对华为 Java 技术笔试题(2016)中的内容进行总结和分析,涵盖了 Java 基础、String、StringBuffer 与 StringBuilder 的区别、静态变量和实例变量的区别、继承和接口的区别、HashMap 和 Hashtable 的区别、...
主要介绍了Java static(静态变量)和私有化功能与用法,结合具体实例形式分析了Java static(静态变量)和私有化的相关概念、原理、使用方法及操作注意事项,需要的朋友可以参考下
在 Java 中,变量可以分为两类:类变量(静态变量)和实例变量(对象变量)。类变量是使用 static 关键字修饰的变量,它们属于类,而不是对象。实例变量则是没有使用 static 关键字修饰的变量,它们属于对象私有。 ...