java 关键字Static作用
1.静态变量被所有的对象所共享,在内存中只有一个副本【存放在方法区】
非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本
2.static 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。
在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次(如果该类的父类中有静态代码块会先执行父类的代码块)。
但是 代码块 是创建几次对象就执行几次
3.static可以被用来静态导包,调用该方法时就可以不用 class.method() 直接method()就行了
import static java.time.LocalDate.*; public class demo { private static int a=0; public static void main(String[] args) { new demo(); new demo(); System.out.println("a: "+new demo().getA()); // System.out.println( LocalDate.now()); /** * 原来调用要 LocalDate.now(); 使用静态导入后 待用 now() */ System.out.println("静态导入 import static "+now()); // System.out.println("view"); // System.out.println("service"); // System.out.println("dao"); // System.out.println("db"); // File result = new File("d:\\ff","dd\\gg.java"); // System.out.println(result.getParentFile()); // System.out.println(result.getParentFile().mkdirs()); } public demo(){ a++; } public int getA(){ return this.a; } /** * static{} 静态代码块,加载类之前执行 * {} 代码块,每次new的时候都会被执行 * 对象初始化过程: * 1. 初始化static变量 * 2. 执行static代码块 * 3. 初始化非static变量 * 4. 父类无参构造函数 * 5. 子类构造函数 * 6. 直接调用类的静态方法执行顺序是: * 1)初始化static变量 * 2)执行static代码块 * 3)执行静态方法 */ { System.out.println("这是一个代码块"); } static{ System.out.println("这是一个静态代码块"); } }

参考:https://www.cnblogs.com/gxyandwmm/p/9478569.html

浙公网安备 33010602011771号