Java中静态和非静态变量之间的区别
变量为我们提供了程序可以操纵的命名存储。Java中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局。可以存储在该内存中的值的范围;以及可以应用于该变量的一组操作。
静态变量
静态变量也称为类变量,在类的对象之间通用,并且也可以使用类名来访问此变量。
非静态变量
非静态类的任何变量称为非静态变量或实例变量。
以下是静态变量和非静态变量之间的重要区别。
Astaticvariablecanbeaccessedbystaticmembersaswellasnon-staticmemberfunctions.
Astaticvariableactsasaglobalvariableandissharedamongalltheobjectsoftheclass.
Staticvariablesoccupieslessspaceandmemoryallocationhappensonce.
Astaticvariableisdeclaredusingstatickeyword.
静态与非静态变量的示例
JavaTester.java
public class JavaTester { public int counter = 0; public static int staticCounter = 0; public JavaTester(){ counter++; staticCounter++; } public static void main(String args[]) { JavaTester tester = new JavaTester(); JavaTester tester1 = new JavaTester(); JavaTester tester2 = new JavaTester(); System.out.println("Counter: " + tester2.counter); System.out.println("Static Counter: " + tester2.staticCounter); } }
输出结果
Counter: 1 Static Counter: 3