java基础之static关键字修饰变量、方法

1.静态变量:static修饰的变量

再看下我们创建的类,对象c1和c2分别占两块不同的内存空间,这两个对象中的属性虽然是一样的,但是互不相干。假如我们修改其中一个对象的属性,另一个对象中的属性是不会发生改变的。

c。使用static关键字修饰的变量我们叫做静态变量;

那反之不会发生改变的属性我们叫做非静态变量,也就是我们平常说的实例变量

总结:

1.静态变量随着类的加载而加载(属于类,不属于某个对象),可以通过类.静态变量进行调用;

2.静态变量的加载要早于对象的创建;

3.由于类只会加载一次,则静态变量在内存中也只会存在一份,存在于方法区中的静态域中;

2.静态方法:static修饰的方法

 注:Chinese.eat(),就是通过类.静态变量进行调用,不用通过创建对象(Chinese  c1= new Chinese(),c1.eat() )去调用这个方法;

说明:

1.静态方法中,只能调用静态方法或静态属性;

2.非静态方法中,既可以调用静态的方法或属性,还可以调用非静态的方法或属性;

最后总结一下:想要判断类中static变量及方法的一些问题只需要记住:
static的变量和方法都是在其所在类被编译时即分配了内存,而实例变量和实例方法都是在该类创建了一个类对象后才分配内存,只要记住这个先后关系,一切问题就迎刃而解了

猜你喜欢

转载自blog.csdn.net/weixin_43500974/article/details/129256942