黑马程序员技术交流社区
标题:
关于多个对象使用同一个成员变量的问题
[打印本页]
作者:
P李勇
时间:
2015-4-5 01:14
标题:
关于多个对象使用同一个成员变量的问题
如题,多个对象使用同一个成员变量时,该成员变量为何要用static修饰?
作者:
关山明月
时间:
2015-4-5 01:32
非静态的成员变量是在创建对象时初始化的,就是每一个对象都有,而静态成员变量是在创建类时就有的,是属于公有的。比如一个饮水机,是公用的,人人都可以去接水,就是公共的,而杯子是每个对象(人)都有的。
作者:
夜班心桥
时间:
2015-4-5 01:32
当多个对象共享同一份数据时,该成员修饰为静态。
比如:黑马的所有学生都有一个学校属性,这个学校就是黑马。被该学校所有的学生所共享。
此时,可以将学校属性设置为静态。所有该学校的学生都共同享有该数据。
作者:
君嘘
时间:
2015-4-5 02:13
String country="China";
如果不用static修饰的country
每new一个对象,country都存储在对象中(堆内存中),而且每个对象都有一个对应的country,互不相关。
如果用static修饰
那么类一加载的时候,country就会存储在方法区中。
每new一个对象,就会把contry的内存地址赋给对象,所有对象共享这个country。
作者:
黑色救护车
时间:
2015-4-5 07:12
用static修饰,就是将这个变量独立出来,存储在内存的静态方法区。所有对象功用这个数据。一般不建议用static关键字,因为被static修饰的变量随着类的加载而加载,生命周期过长,浪费系统资源。
作者:
P李勇
时间:
2015-4-5 11:33
君嘘 发表于 2015-4-5 02:13
String country="China";
如果不用static修饰的country
感谢,手受教了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2