天天看点

黑马程序员-static关键字

 ------- android培训、java培训、期待与您交流! ----------

static作为一个关键字,是一个修饰符,用于修饰成员

static的特点:

1.用于数据的共享。

2.被static修饰的成员都存在于方法区,随着类的加载而加载

3.为成员提供了新的访问方式: 类名。成员

4.优先于对象存在

有优点就会有缺点: 不能对特有数据进行修饰。

     静态方法只能访问静态成员

     静态中不能使用this,super关键字

为什么呢? 结合优点很容易看出,因为用于数据的共享,那么特有数据是不能进行修饰。

    因为被修饰的成员都存在于方法去,是随类而加载的,所以在对象之前,那么就无法访问堆中的成员

    同理,也就不能使用 代表对象的this和super

当静态方法访问了非静态数据时,经常会发生无法从静态上下文调用这个错误

主方法就是典型的静态。

静态的使用:静态修饰的只能是成员,所以可以按照成员方法和属性来说。

成员属性:是否是特有数据

成员方法:是否持有或者访问了对象特有的数据

那么成员变量静态前后的区别:

也是可以根据优点和缺点来说:

首先静态是共享数据,存在于方法区

随类加载和消失,提供了特殊的访问方式 类名.成员

并且如果是属性的话还可以被对象或者直接被类名调用,两种形式

而普通的成员是特有数据,只能存于对象中,也就是只能存于堆中。随着对象加载或者消失,只能使用对象来调用

静态代码块: 就是由普通代码块外加static的形式

static

{

执行语句

}

这个是随类加载,并且只执行一次,优先于主函数

静态代码块执行优先于构造代码块优先于构造函数

继续阅读