static关键字
类的加载顺序
先按照声明顺序初始化基类静态变量和静态代码块,接着按照声明顺序初始化子类静态变量和静态代码块,而后按照声明顺序初始化基类普通变量和普通代码块,然后执行基类构造函数,接着按照声明顺序初始化子类普通变量和普通代码块,最后执行子类构造函数。
- 基类静态变量和静态代码块
- 子类静态变量和静态代码块
- 基类普通变量和普通代码块
- 基类构造函数
- 子类普通通变量和普通代码块
- 子类构造函数
1修饰成员变量成员方法
注意事项
- 存储在方法区中(与java堆相相似)
2修饰静态代码块
注意事项
- 静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问.
- 随着类的加载而执行,只执行一次
3静态类
注意事项
- 1只能在内部类中定义静态类
- 2与外层类绑定,就算没有外部类也存在。
- 3 只能调用外部的静态成员
- 4如果内部类不是静态内部类,那么是不能有静态成员的
4静态导包
静态导包是 jdk1.5 提供的一种新的机制,使用方式为 import static packageName.className.* 或 import static packageName.className.methodName,其中 * 表示导入类的所有静态方法。静态导包后,当调用类的静态方法时,不需要加上类名。
作者:留兰香丶
来源:CSDN
原文:https://blog.csdn.net/codejas/article/details/82907083
demo
import static com.test.test1.Fu.Say;
import static com.test.test1.Fu.name;;
public static void Say()
{
System.out.println("aaaaaaa");
}
public static String name="aaaaaa";
- 直接引入了say方法和name静态变量。
使用原则
- 只能说 import static 不能说 static import
- 防止含糊不清的引入