Java中static关键字使用总结

static关键字的用法

在JAVA的学习中深刻感觉到static关键字的重要,为了加深理解,写一篇博客总结一下还是非常有必要的。

static表示“全局”或者“静态”的意思,Java中被 static 修饰的成员称为静态成员或类成员,它是属于整个类所共有,也就是该类的所有对象所共有,不止属于某个对象, static 可以修饰变量、方法和代码块.
用一句话来总结static关键字的基本作用就是:方便在没有创建对象的情况下来进行调用(方法/变量)。
很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

一、修饰变量
1.一般将用static修饰的变量称为静态变量或类变量,静态变量在内存中只会分配一次内存空间,在加载类的过程中完成静态变量的内存分配,直到该类被卸载的时候才会被回收。而没有用static修饰的非静态变量称为实例变量,对于实例变量,每创建一个实例,就会为实例变量分配一次内存。

2.静态成员可以使用类名直接访问,也可以使用对象来访问。当然,鉴于他作用的特殊性更推荐用类名访问。

二、修饰方法
1.与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。
2.因为静态方法不依赖于任何对象就可以访问,所以静态方法中不能用this关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员方法),因为实例变量和实例方法都必须依赖某个具体的对象才能调用,只能访问所属类的静态成员变量和静态成员方法。
而非静态成员方法,是可以访问静态成员方法的。
3.因此,如果说想在不创建对象的情况下调用某个方法,就可以将这个方法设置为static。我们最常见的static方法就是main方法。
4.Java API中的Math类中所有的方法都是静态的,而一般类内部的static方法也是方便其它类对该方法的调用。
静态导入:import static Math.*;

三、修饰代码块
static还可以用来修饰代码块称为静态代码块,静态代码块可以在类中的任何位置,不在类中的任何方法体内,可以有多个静态代码块。JVM在首次加载类的时候会按照所有静态代码块的顺序执行所有静态代码块,并且只会执行一次。

你可能感兴趣的:(java)