static关键字的作用:
1、使用static关键字修饰一个属性
声明为static的变量实质上就是全局变量
2、使用static关键字修饰一个方法
通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法
3、使用static关键字修饰一个类部类
声明为static的方法有以下几条限制:
它们仅能调用其他的static 方法。
它们只能访问static数据。
它们不能以任何方式引用this 或super
static关键字
static 数据存储在静态方法区中,该类的所有对象共享一份静态数据
(1)static变量不属于对象,属于类信息,不依赖与对象,用对象调用,对象没有创建的时候,就已经在方法区中创建了
(2)静态变量只会方法区中保存一份
(3)不建议使用对象名称去访问静态数据
(4)静态数据在类加载时就存在方法区中
(5)静态数据只会在程序运行结束时才能自动释放
(6)static关键字可以用来修饰一个属性,方法,内部类
(7)静态方法只能访问静态数据,不能调用非静态数据
(8)非静态方法可以访问静态数据
(9)静态方法不能使用this和super关键字
(10)构造方法不能是静态的
发现只要是类名调用的东西就是静态数据(属性和方法)
没有对象就能调用静态方法;eg: main()
什么时候我们的程序中要使用static呢?
(1)当需要定义一个全局的变量供所有对象共享时
(2)当需要定义工具类时,可以使用静态方法
(3)当定义一个常量时
小结:由于静态变量的生命周期贯穿全个程序,会一直占用内存,
所以在使用时,要考虑该变量是否需要在整个程序运行中都要使用。
本文来自磨砺营学员M-wise