java中static修饰符详解
1.static特点
static可以用来修饰 字段,方法,内部类
static修饰的属于类,而不属于对象,是整个类所共有的,随着类的加载而加载于内存之中,是优先于对象的
用对象访问static所修饰的字段,方法,内部类,其实在底层是使用类名调用的,和方法没有任何关系。
2.static修饰的在JVM中的存储位置
static再JVM中存储在方法区,是所有的对象所共享的。
不创建对象,就使用类名调用可以打印
3.区分类成员和实例成员
类成员:用static修饰的成员,属于类
实例成员:没有用static修饰的成员,属于对象
4.调用范围
类成员可以使用对象调用,但是底层编译时还是使用的类名
实例成员只能使用对象调用
static方法只能调用static修饰的成员,若想调用实例成员,必须先创建一个对象。
非static方法既可以调用静态成员,又可以调用实例成员
注意:
1.什么时候定义成static类型的?
在开发过程中,往往工具类方法使用stsatic..可以直接用类名进行调用,如果不使用static修饰 ,则这些方法属于该类的对象,我们要先创建对象,再使用这些方法,这样会创建多个对象。其实工具类只需要一个对象。
2.弊端
类成员的生命周期过长,浪费内存;一旦加载就永驻内存,随着JVM的停止而消失。