当程序中使用了static关键字进行某个属性定义之后,那么此属性将不保存在堆内存里面,会保存在一个全局数据区的内存空间之中,并且所有的对象都可以进行该数据区的访问。
一. static属性的内存分析
结论:访问static属性都使用类名称。
所有的非static属性必须在实例化对象之后才可以使用,而所有的static属性不受实例化对象的限制,也就是说是否有对象与static属性操作无关。
static使用原则:
★在定义类99%的情况下是不会考虑static属性的;
★如果需要描述共享属性的概念,或者不希望受到实例化对象控制的时候使用static属性。
二. static的应用
static属性的最大功能是进行共享的操作,所以在这一基础上可以使用static做一个对象产生的计数。所以新对象的产生一定要使用构造方法完成,所以可以在构造方法中实现统计。、
另外,可以使用static给创建对象时没有初始化的对象赋初始值,形如:Name-0、Name-2、Name-3...