JavaSE高级——静态变量

1.静态变量的定义???

定位位置:在类中,代码块和方法体之外。

定义语法:[修饰符]  static  数据类型  静态变量名

切记:static不能用于修饰局部变量!!


2.静态变量的特点???

 

a)静态变量优先于对象存在,随着类的第一次加载就已经存在。

--> 成员变量从属于对象,静态变量从属类。

 

b)在一个类中,静态变量只有一份,为类和对象所共享。

--> 因为类只会记载一次,则一个类中的静态变量只会创建一次。

 

c)静态变量属于共享数据(为类和对象所共享),它的操作语法:通过“类名”或“对象”来操作。

语法一:类名.静态变量名 --> 建议

语法二:对象.静态变量名 --> 不建议

 

b)静态变量和成员变量都有默认值,并且默认值规则一模一样。


3.内存区域之方法区

方法区存放:类的信息、静态变量和静态方法等等。

注意事项:

a)“方法区”在堆内存中,也就是堆内存中包含了“方法区”。

b)当第一次使用某一个类时,那么首先会加载该类的信息进入“方法区”,并且一个类只会加载一次。

--> 类加载完成之后,会为该类中静态变量开辟存储空间。


4.对象开辟的存储空间

注意:创建对象的时候,只需为“成员变量”开辟存储空间。

[静态变量内存图]                                                我们在类中声明的静态变量存储在方法区中。

 


静态变量和成员变量的区别

a)定义语法区别

成员变量:[修饰符] 数据类型 变量名;

静态变量:[修饰符] static 数据类型 变量名;

b)存储位置区别

成员变量:存储在堆内存中,是对象的特有数据。

静态变量:存储在方法区中,是类和对象的共享数据。

c)生命周期区别

成员变量:随着对象的创建而“出生”,随着对象的销毁而“死亡”。

静态变量:随着类的加载而“出生”,随着程序的结束而“死亡”。

d)创建次数区别

成员变量:每创建一次对象,就会创建一次成员变量。

静态变量:因为一个类只会加载一次,因此静态变量只会创建一次。

e)调用语法区别

成员变量:必须通过对象来调用,语法:对象.成员变量名

静态变量:可以通过对象或类名来调用,语法:对象.静态变量名 或 类名.静态变量名


什么时候使用静态变量,什么时候使用成员变量???

当用于保存共享数据时,建议使用“静态变量”。 --> 慎用!

当用于保存特有数据时,必须使用“成员变量”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值