static 属性:
属性前加static表示公共属性,所有对象都可以使用的属性。(任何一个对象修改了公共属性的内容,都将影响其他对象)。
常用内存区域:
栈内存空间:保存所有的对象名称(更准确是保存引用的堆内存空间的地址);
堆内存空间:保存每个对象的具体属性内容;
全局数据区:保存static类型的属性;
全局代码区:保存所有的方法定义;
static定义的属性 VS 非static定义的属性:
1.static定义的属性是可以由类名称直接调用的
Book.pub = “清华大学出版社”;
2.非 static属性,必须产生实例化对象,才可以访问。
static定义的方法 VS 非static定义的方法
1.使用static定义的方法也可以在没有实例化对象产生的情况下由类名称直接进行调用。
a.static方法不能直接访问非static****属性或方法,只能调用static属性或方法
b.非static方法可以访问static属性或方法,不受任何限制。
所有的非static定义的结构,必须在类已经明确产生实例化对象时才会分配堆空间,才可以使用。
所有的static定义的结构,不受实例化对象的限制,即可以在没有实例化对象的时候访问。