1、static 修饰符的特点:① stat坡纠课柩ic 修饰的成员(字段/方法),随着所在类的加载而加载当 JVM 把字节码加磙沏损旷载到 JVM 的时候,static 修饰的成员已经在内存中了② 优先于对象的存在对象是被手动通过 new 关键字创造出来的③ static 修饰的成员被该类型的所有对象所共享根据该类创建出来的任何对象,都可以访问 static 成员。注:表面上通过对象去访问 static 成员,其本质依然使用类名访问,与对象无关,使得 3 并无实际意义④ 直接使用类名访问 static 成员因为static修饰的成员直接属于类,不属于对象,所以可以直接使用类名访问static成员。
2、类成员和实例成员的访问1、类中的成员:字段、方法、内部类2、类成员:使用static修饰的成员3、实例成员:没有使用static修饰的成员 类成员只能访问类成员,实例成员只能访问实例成员,类成员直接属于类,可以通过类来访问 static 字段和 static 方法
3、实例成员:只属于对象,通过对象来访问非 static 字段和非 static 方法(对象其实可以访问类成员,但是底层依然使用类名访问的)在 static 方法中,只能调用 static 成员非 static 方法:可以调用静态成员,也可以调用实例成员如果这个状态/行为属于整个事物(类),就直接使用 static 修饰,则该行为被所有对象所共享。
4、在开发中,往往把工具方法使用 static 修饰,如果不使用 static 修饰,茸垂扌馔则这些方法属于该类的对象,我们得先创建对象再调用方法,而在开发中工具对象只需要一份即可,若不使用 static 修饰,可能会创建 N 个对象,使得系统内存占用增多,性能低下,此时的解决办法往往把该类设计为单例的,但依然麻烦,即:在一般开发中,设计工具方法时,为了调用简单,使用 static 修饰。
5、类成员的使用利处:对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象都存储一份,可以直接被类名调用弊端:生命周期过长