黑马程序员-static关键字

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

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


static的特点

1.用于数据的共享。

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

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

4.优先于对象存在


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

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

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

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

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

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

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

主方法就是典型的静态。


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

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

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


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

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

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

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

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

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


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

static

{

执行语句

}

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



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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值