静态是随着类的加载而加载的,类加载时,检测有检测静态代码块,静态方法,静态属性等等,若有就统统加载,而且这些静态成员也会随着类的消亡而消亡,说明静态成员的生存周期会很长,比较占资源,这也是静态的弊处之一;
而非静态成员是对象成员,这个特点就是随着对象的创建而存在,没有对象时,这些非静态成员就不存在,而且非静态成员随着对象的消亡而消亡,从时间上看,非静态出现的比静态要晚;
根据上述描述,就会很好的了解,静态不能访问非静态了;
给你一个示例图,可以说明一切,这个假设有一个Person类,主函数执行到Person p=new Person();时,对象建立的过程:
这个看清楚了,就好办了,基本上可以说明内存的动态,希望对你有帮助;
|