一、概述
在我们开发过程中,经常会使用到static关键字。包括在工具类的使用static修饰静态方法,和final结合起来使用定义属性。
二、问题回答
问题:是否可以从一个static方法内部发出对非static方法的调用?
答:不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。
三、static总结
static使用的注意事项有哪些?
1、 在静态方法中是没有this关键字的
2、静态是随着类的加载而加载,this是随着对象的创建而存在。
3、 静态比对象先存在。
4、静态方法只能访问静态的成员变量和静态的成员方法【静态只能访问静态,非静态可以访问静态的也可以访问非静态的】
static关键字的特点?
1、随着类的加载而加载
2、优先于对象存在
3、被类的所有对象共享
4、可以通过类名调用【静态修饰的内容一般我们称其为:与类相关的,类成员】
使用static存在什么问题?
1、占用内存,并且内存一般不会释放;
2、在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误。
3、在Android中不能将activity作为static静态对象,这样使activity的所有组件对象都存入全局内存中,并且不会被回收;
网友评论