在第一次接触java的时候,根据国际惯例一定要写一个helloworld的程序,第一次见到static关键字应该是在我们的主方法里面:
记得当时我们只知道public static void main(){}是主方法,所有的写的代码要放在主方法里运行,熟不知这里面的坑很多很多,踩完一个又一个,那么今天先来说说Static这个关键字;
static 可以修饰属性,方法,代码块(初始化代码块)和内部类;在被static修饰的时候,不管是属性,方法,亦或是代码块等通过它的内存图可以看出:
声明一个类中有实例属性name,age以及用static修饰的like属性,在类加载的同时在jvm中会将带有static修饰的属性放在静态域中,随着类的加载而加载;可以看出当s1和s2都通过new关键字创建实例对象的时候,静态域已经随类的加载已经存在静态域当中了。实例化对象s1和s2同时指向静态域中的引用,当静态域中的静态属性发生改变时,s1,s2中的like属性都会一起改变。
通过代码举例说明:
1.静态方法是随着类的加载而加载的
2.静态方法内部只能调用静态的属性和本类当中的静态方法
3.静态方法可以通过类名.方法的方式调用