“这是我参与8月更文挑战的第8天,活动详情查看: 8月更文挑战”
static关键字我们很熟悉了,因为我们写的第一个java程序用的就是
public static void main(String[] args)
那么static关键字到底有什么用呢?
一句话来说,static关键字就是方便在没有创建对象时,使用类名调用变量和方法。
下面我们主要介绍四个内容来深入了解static的使用:
static修饰成员变量。
被static修饰的变量叫做静态变量,也叫类变量。
如果一个成员变量使用了static修饰,那这个变量不再属于自己,而是属于这个类。调用时可以通过创建对象来调用(不推荐,就算这么写了,在javac编译后也会被翻译成通过类名调用。),也可以通过类名来调用。
这里需要注意的是static修饰的成员变量,多个对象共用一份内存空间,即如果有某一个对象改变了该变量的值,那么其他对象拥有的该变量的值也随之发生改变。
static是不允许用来修饰局部变量。static说明这个变量是属于类的,而局部变量的范围就在它所属的{}内,两者相互矛盾,Java语法规定,static是不允许用来修饰局部变量。
static修饰成员方法
被static修饰的成员方法1叫做静态方法,也叫做类方法,同样如果一个方法使用了static来修饰,那么它就属于这个类,调用时建议通过类名来调用。
需要注意的是:在静态方法中不能调用非静态方法和非静态变量。
static修饰类
一般来说,staic大多用来修饰成员变量或者成员方法,但static也可以用来修饰内部类。被修饰的内部类可以直接作为一个普通类来用,不需要创建一个外部类的实例,而普通内部类的引用需要创建一个外部类的实例。
static静态代码块
static还有一个比较关键的作用就是形成静态代码块优化程序性能。static代码块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
写在最后
好了,以上就是static的一些用法和一些容易出错的地方,static关键字也是面试中常见的问题,以上内容若有不正之处,希望掘友们谅解并欢迎批评指正。