Java中static的用法

static的用法

static关键字涉及很多Java虚拟机相关内容,感兴趣的读者可以看看Java虚拟机相关内容哦!

方便在没有创建对象的情况下来进行调用(方法/变量)。

static:静态的,用于修饰成员(成员变量,成员方法);

  1. 被static所修饰的变量或者方法会储存在数据共享区(静态存储区);

  2. 被static修饰后的类成员变量只有一份!

  3. 当成员被static修饰之后,就多了一种访问方式,除了可以被对象调用之外,还可以直接被类名调用,(类名.静态成员);

使用:(一定要提到类加载)

  1. 静态变量:修饰成员变量
    • 静态变量属于类,被所有的对象所共享,在内存中只有一个副本(静态变量之所以又称为类变量,是因为它和类关联在在一起,随着类加载而存在于方法区中(而不是堆中))
    • 静态变量当且仅当在类初次加载时会被初始化
    • 静态成员变量可以通过类直接访问
    • 非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响
    • 非静态成员变量必须要创建实例后才能访问
  2. 静态方法:修饰成员方法
    • 在静态方法中只能访问静态成员(静态变量或者静态方法),不能访问非静态成员
    • 静态方法随着类加载而加载
    • 调用方式:类名.静态方法名
  3. 静态代码块
    • static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。

注:

  1. 独立于类

  2. 在类加载的时候执行,只执行一次

  3. 修饰的方法只在调用时执行

方法注意事项:

  1. 静态的方法只能访问静态的成员;

  2. 非静态得方法即能访问静态得成员(成员变量,成员方法)又能访问非静态得成员;

  3. 局部变量不能被static修饰;

  4. 静态得方法中是不可以定义this、super关键字的,因为静态优先于对象存在,所以静态方法不可以出this;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值