java中static的特点和使用

看到main方法前面的public static void。作为一个初学者不禁会想为什么main会有一个static去修饰,这就需要我们去了解一下static的特点和用法了。
static的基本含义是静态的,不会随着类中对象的实例化而产生新的变化,static在类中,内存是共享的,每个实例使用它时实际内存都是那一个内存,这一点其实和c++是类似的。static是一个修饰符,可以去修饰方法和属性,以及内部类。
static的特点:
1.静态的成员会优先于对象存在,也就是在类实例化对象之前静态成员就已经存在了。
2.静态成员的空间为所有该类的对象共享,所有对象操作的都是这一个static属性。
3.因为上述的原因,由于所有对象使用的都是这样一个静态成员,所以可以用类名.静态成员去使用。
4.静态方法只能访问静态属性,而静态属性可以被非静态方法访问。
5.静态方法中不能由this和super关键字。this和super关键字都是针对对象的而不是类的,而静态方法是先于对象存在的,所以不能用this和super来对当前和父类对象操作。
6.静态方法和静态属性都可以被继承,但是静态方法不能被重写,被继承后可以直接父类.静态方法来调用。
实际上,静态变量是类变量,是属于类的,生命周期和类一同,即随着类的加载而加载,随着类的消失而消失,为类所共有。而非静态属性是属于对象的,生命周期和对象一样,随着对象生成而生成,随着对象消失而消失,为对象所特有。
静态方法由于不需要实例化对象就可以使用,所以经常可以用于类库中类的方法来让别的类方便使用。
所以回归刚开始的问题,java的主方法要用是static,由于static方法可以不必实例化就能直接调用,JVM不用实例化main方法就可以调用,并且static方法不能重载,这样JVM调用时就不容易出错,所以main方法用static。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章