这篇文章,我们来介绍一下static关键字
目录
1.介绍
static:表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量
被static修饰的成员变量叫做静态变量,它的特点如下:
- 被该类的所有对象共享
- 不属于对象,属于类
- 随着类的加载而加载,优先于对象存在
调用方式:类名调用(推荐)、对象名调用。
被static修饰的成员方法叫做静态方法,它的特点如下:
- 多用在测试类和工具类中
- Javabean类中很少用
调用方式:类名调用(推荐)、对象名调用。
工具类:可以帮助我们做一些事情,但是不描述任何事务的类
要求:类名要见名知意;私有化构造方法(即外界不能创建该类对象);方法都定义为静态的,方便调用
static的注意事项:
- 静态方法只能访问静态变量和静态方法
- 非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法
- 静态方法中没有this关键字
总结上面的:
- 静态方法中,只能访问静态
- 非静态方法可以访问所有
- 静态方法中没有this关键字
加载时机:静态的是随着类的加载而加载;非静态的是对象加载时才加载的
2.static的内存分析
下面根据具体代码来分析一下static的内存图
结果如下:
下面简要的分析一下它的内存图:
图画的很清楚,这里不多赘述
3.重新认识main方法
一个程序的main方法如下图所示:
下面来重新认识一下它
public:被JVM调用,访问权限足够大
static:被JVM调用,不用创建对象,直接类名访问,因为main方法是静态的,所以测试类中的其他方法也需要是静态的
void:被JVM调用,不需要给JVM返回值
main:一个通用的名称,虽然不是关键字,但是被JVM识别
String[] args:以前用于键盘录入数据的,现在没用
4.小结
这篇文章我们介绍了static关键字,它就是一个修饰符,表示静态的,一旦被它修饰,那么这个变量或方法就是属于类而不是属于某个方法啊对象啊什么的,就是直接把这个东西的有效范围扩大到最大了。就是这个作用。