您的位置:首页 > 编程语言 > Java开发

Java基础知识之static关键字

2014-01-14 21:24 330 查看
static关键字作为修饰符可以修饰变量也可以修饰方法,但都必须是成员变量或者是成员方法。

当成员变量或者成员方法被static关键字修饰时,该变量或者该方法不仅可以被本类对象调用,还可以被本类名调用,调用方法为:类名.成员变量(该变量被static修饰),或者类名.成员方法(该方法被static修饰)。

一个成员变量或者成员方法被static关键字修饰之后,该成员变量被称为静态成员变量或者类变量,该方法被称为静态成员方法或者类方法,而其他的非静态成员变量又被称为实例变量;该成员变量或者成员方法具有以下特点:

1、随着类的加载而加载,也就是说静态变量或静态方法随着类的消失而消失,说明它的生命周期最长,而其他的非静态变量或非静态方法是随着实例(对象)的创建才被加载的。

2、优先于类的对象存在,也就是说静态成员在对象创建之前就存在了的,而非静态成员是在对象创建后才可以使用的。

3、被所以对象所共享。

4、可以直接被类名所调用。

类变量和实例变量的区别:

1、存放位置:

类变量随着类的加载而存在于方法去中;

实例变量随着对象的创建而存在于堆内存中;

2、生命周期:

类变量生命周期最长,随着类的消失而消失;

实例变量生命周期随着对象的消失而消失。

使用static消失成员时注意的事项:

1、静态方法只能访问静态成员,非静态方法既可以访问静态成员也可以访问非静态访问;

2、因为静态成员优先于对象存在,所以静态方法中不可以出现this关键字;

3、主函数就是静态的。

那么既然了解了静态成员的特点了,我们该什么时候使用静态呢?

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

当对象中出现共享数据时,就使用静态,而对象的一些特有属性定义成非静态,存放在堆内存中。

什么时候使用静态成员方法?

当方法中没有访问到非静态数据时,那该方法就可以定义成静态方法。

所以使用静态成员有利也有弊:

好处是对对象的共享数据进行单独空间的存储,这样就可以节省空间,也就没有必要对每一个对象中都存储一份共享数据,另外还可以直接使用类名调用。

缺点是生命周期过长,而且访问出现局限性(因为静态方法只能访问静态成员)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息