博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

static

Posted on 2013-12-03 18:01  Lillian Mao  阅读(117)  评论(0编辑  收藏  举报

static : 是一个访问修饰符,用来修饰对象的成员属性和成员方法。

当成员用static修饰后,不仅可以用对象调用,还可以直接通过类名来调用。

static的成员在内存中不是放在堆内存,而是放在 一个共享区包括 方法区(类中的方法,静态成员)、数据区等

特点:

1.随着类的加载来加载,随着类的消失而消失,也就是说他的生命周期最长。

2.优先于对象存在。

3.为所有对象所共享

4.不仅可以被对象引用,还可以直接通过类名来调用

  类变量 实例变量
内存 存在于方法区中 存在于堆内存中

生命周期

生命周期最长,随类的建立而建立,消失而消失 随着对象的建立和消失而建立和消失

静态使用注意事项:

1.静态方法只能访问静态成员(方法和变量);非静态方法可以访问静态方法

2.静态方法中不可以定义this super 关键字,因为静态优先于对象存在,this 和super均是对象的引用

3.主函数是静态的

 

它的优缺点:

优点:对对象共享的共享数据进行单独空间的存储,节省内存空间; 可以被类名直接调用,而不一定要定义对象。

缺点:但是它的声明周期过长,且访问有一定的局限性。

 

什么时候使用static呢? 可以从两方面来说,因为static可以用来修饰变量和方法

什么时候定义static 变量呢?

A: 当对象中出现共享数据时,该数据被静态所修饰

什么时候定义static方法呢?

A:当功能方法内部没有访问到非静态数据(对象特有数据)时,那么该功能可以定义成静态的。