Java的Static使用介绍(2)

Java中,被static修饰的变量就叫作静态变量,或者叫类变量。

为什么Java中要引入静态变量?到底静态变量有什么用?

为了说明这些问题,下面来看一下静态变量和实例变量(没有被static修饰的变量)的区别。

1)JVM只是在加载类的过程中就完成了静态变量的内存的分配,在内存中只有一份拷贝,并且地址是不可变的,所以可以直接使用类名访问,当然也可以使用对象来访问(不推荐);

2)实例变量,JVM只有在一个类的实例化的时候才分配一次内存,它在内存中有多份拷贝,并且是相互独立的,所以只能通过对象来访问。

根据静态变量和实例变量的区别,我们可以使用静态变量来实现一些功能,例如:

1)当需要同时实例的实现个数时,例如在数据库连接类中,如果当前连接的个数为0时,就自动的释放掉;

2)使用静态变量可以很方便的实现单例模式。

单例模式的结构如下:

Java的Static使用介绍

很显然,如果将变量mInstance定义为静态变量,当其他对象需要使用该类时,只需要调用getInstance方法返回mInstance就可以了,这样子就可以保证类Singleton只有一个实例。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d5b94a4f805b3acb5fa1b53ec51a7544.html