java static介绍

static用于修身成员变量和成员方法,但是不能修饰局部变量。在开发中,一般不使用静态,因为静态的存储中期较长,一般会造成空间的浪费。

静态不存在于堆内存中,静态的成员或方法,可以直接被堆内存调用,静态可以直接通过类名来调用。

静态存在的原因,是为了把共享的东西提取出来,方便其他程序的调用。

静态成员随着类的加载而加载,静态成员优先于对象存在,静态成员被所有对象共享,静态成员可以被类名直接调用,也可以通过对象来调用。

方法区,堆,栈。静态成员在静态方法区中。

静态方法只能访问静态成员(因为静态方法随着类的加载已经加载,非静态成员在类的加载时并没有加载),所以在前面写选择排序和冒泡排序的时候才会写静态方法,因为住函数是静态的。否则,排序法写在主函数中,是不必设置为静态方法的。

非静态方法可以访问静态方法也可以访问非静态。

静态方法不能定义this和super,因为this代表当前对象,而静态存在时,有可能没有对象。

静态的好处:多了一种访问形式。类名.静态成员

弊端:静态方法只能访问静态成员,出现了访问局限性。

//静态和非静态的区别

1.静态变量也称为类变量。可直接被类名调用,所属于类,

非静态变量,称为实例变量,是被对象调用的,所属于对象。

2.静态变量随类的加载而加载,消失而消失,生命周期长。非静态变量,随类的创建而加载,对象的消失而消失。生命周期较短。

3,静态变量存在于方法去,非静态变量存在于堆内存。

4.静态变量被所有对象共享,实例变量是对象中的特有数据。

原文地址:https://www.cnblogs.com/laok/p/4751293.html