Java中的static关键字

Java 中的 static 关键字

static 代表着什么?

Java 中,static 表示 “全局” 或者 “静态” 的意思,用来修饰成员变量和方法,当然也可以修代码块。

Java 把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量、数组和对象的引用,堆内存主要放一些对象。在 JVM 加载一个类的时候,若该类存在 static 修饰的成员变量或方法,则会为这些成员变量或方法在固定的位置开辟一个固定的内存区域,从而让 JVM 可以非常方便地访问他们。同时如果静态的成员变量和方法不出作用域,它们的句柄都会保持不变。被 static 修饰的成员变量或方法是独立于该类的,它不依赖于某个特定的实例变量,也就是说它是被该类的所有实例共享的。

如何使用 static

static 关键字可以用于修饰成员变量和成员方法,我们将其称为静态变量和静态方法,直接通过类名进行访问。

ClassName.propertyName

ClassName.methodName

除此以外,static 还能修饰代码块,当 JVM 装载类时,就会执行这块代码块。

1.静态变量

static 修饰的变量称为静态变量,没有用 static 修饰的变量称为实例变量。两者的区别是:

  • 静态变量是随着类加载时被完成初始化,它在内存中仅有一个,而且 JVM 也只会为它分配一次内存,同时类所有的实例都共享这个静态变量,可以直接通过类名来访问它。
  • 实例变量是每个实例对象特有的,它与实例对象同生共死

2.静态方法

static 修饰的方法称为静态方法,通过类名对其进行直接调用。由于静态方法在类的加载时就存在了,它不依赖于任何实例,所以,静态方法必须实现,也就是说他不能是抽象方法!!

在很多工具类中,一些工具方法就被定义为静态方法,比如 Math 类,Arrays 类。

总结:无论是变量,方法,还是代码块,只要用 static 关键字修饰的,就是在类中被加载时已经准备好的了,也就是可以脱离实例对象使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值