java基础提高篇--static关键字

一、含义:

在java中没有全局的概念,可以用static关键字来构造出“伪全局”的概念,它可以修饰成员变量、成员方法,同时可以修饰代码块。

java中将内存分为栈内存和堆内存,栈内存中存放一些基本类型的变量、数组和对象的引用,堆内存中存放一些对象。在jvm加载一个类的时候,如果这个类的成员变量和成员方法被static修饰,那么jvm会为这些成员变量和成员方法开辟固定大小的内存区域,有了这些固定的区域,jvm就能很好的访问。如果这些成员变量和成员方法不出作用域的话,那么它们的句柄都不会改变。静态的还有另一种含义,就是一旦修改和删除,不会恢复到原来的样子。

被static修饰的成员变量和成员方法是独立于该类的,它不依赖与特定的实例变量,它被类中的所有实例共享,一个实例对其进行修改,会影响其他的实例对其的使用。

二、如何使用

static修饰的成员变量和成员方法,我们称之为静态变量和静态方法,因为static修饰的变量和方法是随着类的加载而创建的,所以访问直接要类名访问,无需实例化再访问。

2.1静态变量

被static修饰的变量,我们称之为静态变量,没有用static修饰的变量我们称之为实例变量,两者之间的区别:

静态变量会随着类的创建而创建,随着类的消亡而消亡,对其的访问直接用类名进行访问,它可以被类中所有实例共享。

实例常量是随着实例的创建而创建的,随着实例的消亡而消亡的,对其访问需创建实例后访问。

            2.2静态方法

被static修饰的变量,我们称之为静态方法,它随着类的创建而创建,随着类的消亡而消亡,对其的访问直接用类名就可以。

2.3静态代码块

被static修饰的代码块,我们称之为静态代码块,随着类的创建而执行,它可以放在该类的任何地方。

三、static的局限

(1)、只能访问static修饰的变量;

(2)、只能访问static修饰的方法;

(3)、static修饰的变量必须在定义的时候初始化,必须在非静态变量之前;

(4)、不能以任何形式的引用this和super。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值