当前位置:

静态变量和实例变量的区别

机器人 |  2025-07-13
 100人浏览

恩……..这道题,我们来看一下,首先得明白,什么是静态变量,什么是实例变量!
看下面这个代码

class Demo1{ //静态变量 public static int a = 1; //实例变量 public int b = 1; public Demo1(){ a++; b++; System.out.println("静态变量: "+a+"实例变量b: "+b); } }

这个demo里的a 就是静态变量,b就是实例变量,
我们在调用静态变量的时候,可以直接使用 类名.静态对象名 来调用 ,比如
Demo1.a
而实例对象使用的时候是通过 new demo().b 来调用的!
我们再来看这道面试题!
静态变量不属于某个实例对象,而是属于类,也叫类变量,只要程序加载了类的字节码,不用创建任何实例对象就会被分配空间,就可以被使用,也就是说,你创建了多个对象,他们共用了一个静态变量,而实例对象是属于自己的独有的,不会被共享!
可以看看下面的代码演示

public class Test { public static void main(String[] args) { Demo1 d1 = new Demo1(); Demo1 d2 = new Demo1(); } } class Demo1{ //静态变量 public static int a = 1; //实例变量 public int b = 1; public Demo1(){ a++; b++; System.out.println("静态变量: "+a+"实例变量b: "+b); } }

最后的结果为

3e52f0cc77de4554b839fe13c8b11c30

可以看出来 静态变量是公共的,而实例对象,是自己用自己的!

文章评论