static 关键字
其实这个 static
关键字,表示静态的意思。它是一个修饰符,可以用来修饰类中的变量和方法。
1.static关键字 特点:
- 随着类的加载而加载。
- JVM运行一个Java程序的时候,它会先将 .class 文件中的信息加载到内存中。在这个时刻我们的静态修饰的成员已经在内存中被初始化了。
- 它先于对象而存在的。
- 被static修饰的这些方法或变量,其实并不属于某个对象,而是大家共享。
- 要不要加static,最关键的一条指标,是要不要共享。
- static修饰的方法或变量,既可以通过类直接访问(推荐),也可以通过对象来访问(不推荐)
2.注意事项
在静态的方法中,只能访问静态的内容(变量、方法),不能访问成员变量、或成员方法。
静态的方法中没有this关键字
3.内存结构
4.静态变量和成员变量的区别
- 所属不同
- 静态变量:属于类,它是一个类级变量
- 成员变量:属于对象,它是对象级别的变量
- 内存中的位置不同
- 静态变量:存放于方法区的静态区
- 成员变量:存放于堆内存
- 内存中出现的时机不同
- 静态变量:随着类加载而创建 , 随着JVM的退出而销毁。
- 成员变量: 只有new对象的时候才会创建 , 随着对象的销毁而销毁。
- 调用方式不同
- 静态变量:既可以通过类名调用,也可以通过对象名调用
- 成员变量:只可以通过对象名调用。
main方法是静态的:
因为执行时,没有任何对象的创建。所以main方法必须是静态的。
工具类是静态的。