话不多说自行体会,如果成员变量不是静态的,那么每初始化一个对象,对象里的food,都是apple。。当把food设置为静态后,food就不再堆内存中的对象里了,是成了公共的了,存在于方法区(也叫共享区)中。别人去咬一口苹果,到你的时候,就只能吃别人吃剩下的苹果。
类加载的话,静态的总是优先于非静态的加载。成员变量次于静态变量加载。日常开发中,不要把所有的变量都设置成静态的,因为,非静态的变量是对象所属的,对象一旦消亡,gc会不定时的清理,而把变量如果设置为静态的话,对象没了,静态的还在,生命周期特别长,占用内存特别多。前后台带着跑,内存撑不住,除非这个类不再使用了,这个静态的生命周期才结束。静态是随着类的加载,而加载到方法区中,随着类的消亡
一般被静态的变量都是,所有对象都共有的属性,比如说,中国人的国籍,都是CN,那么 就可以 static String country = "CN";
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!