Java之static理解

  说到关键字static,首先想到了常量,静态变量,本文我总结了下static的用法。

  1、静态变量

       可以被赋值,便于类访问。

  2、静态方法

    静态方法与静态变量都可以被private、public修饰。

    当JVM加载类时,就会将类的静态方法和静态变量加载到方法区中。且只会加载一次,对所有线程共享,也就说其他线程可以更改方法区中的静态变量。

    static final 可以修饰变量和方法,表示常量不可被修改,修饰方法表示方法不可被覆盖,可以通过类名访问。

  3、静态代码块

    当JVM加载类时,静态代码块只运行一次。因为是先加载到堆内存中,而类的构造器在new时才被加载,所以构造器后于静态代码块运行

    静态代码块内部不可直接访问非静态变量和非静态方法。可以通过对方法的类实例化后,再调用方法,或者对其类的变量赋值。

  4、有一种内部类叫做静态内部类

    静态内部类不需要依赖外部类,而非静态内部类必须持有外部类的引用。

  5、静态导包,import static。简化代码。

    

原文地址:https://www.cnblogs.com/nicknailo/p/8778317.html