java中static修饰符详解

1.static特点

static可以用来修饰  字段,方法,内部类

static修饰的属于类,而不属于对象,是整个类所共有的,随着类的加载而加载于内存之中,是优先于对象的

用对象访问static所修饰的字段,方法,内部类,其实在底层是使用类名调用的,和方法没有任何关系。

2.static修饰的在JVM中的存储位置

static再JVM中存储在方法区,是所有的对象所共享的。

不创建对象,就使用类名调用可以打印

java中static修饰符详解


3.区分类成员和实例成员

类成员:用static修饰的成员,属于类

实例成员:没有用static修饰的成员,属于对象

4.调用范围

类成员可以使用对象调用,但是底层编译时还是使用的类名

实例成员只能使用对象调用

static方法只能调用static修饰的成员,若想调用实例成员,必须先创建一个对象。

非static方法既可以调用静态成员,又可以调用实例成员

注意

1.什么时候定义成static类型的?

在开发过程中,往往工具类方法使用stsatic..可以直接用类名进行调用,如果不使用static修饰 ,则这些方法属于该类的对象,我们要先创建对象,再使用这些方法,这样会创建多个对象。其实工具类只需要一个对象。

2.弊端

类成员的生命周期过长,浪费内存;一旦加载就永驻内存,随着JVM的停止而消失。