美文网首页
Java手记——static

Java手记——static

作者: 毛都不会的java汪 | 来源:发表于2019-04-01 09:23 被阅读0次

    1、static变量

    静态变量在内存中只有一个拷贝(节省内存)

    在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)

    所以一般在需要实现以下两个功能时使用静态变量:

    • [x] 在对象之间共享值时
    • [x] 方便访问变量时

    2、static静态方法

    静态方法可以直接通过类名调用,任何的实例也都可以调用。

    不能用this和super关键字,只能访问所属类的静态成员变量和成员方法。。

    静态方法是类内部的一类特殊方法,只有在需要时才将对应的方法声明成静态的,一个类内部的方法一般都是非静态的

    了方便方法的调用会声明为static

    3、static代码块

    独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。

    4、static final 修饰成员变量和成员方法

    可简单理解为“全局常量”

    对于变量,表示一旦给值就不可修改,并且通过类名可以访问。

    对于方法,表示不可覆盖,并且可以通过类名直接访问。

    5、static静态类

    如果一个类要被声明为static的,只有一种情况,就是静态内部类

    1.静态内部类跟静态方法一样,只能访问静态的成员变量和方法

    2.静态内部类可以声明普通成员变量和方法

    3.静态内部类可以单独初始化:

    使用场景

    1. 内部类初始化无需实例化外部类;

    2. 当某个类需要接受多个参数进行初始化时,推荐使用静态类Builder构建。

    6、import static和import的区别

    一般我们导入一个类都用 import com.....ClassName;

    而静态导入是这样:import static com.....ClassName.;

    这里的多了个static,还有就是类名ClassName后面多了个 . ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用。

    同理也可以导入静态变量

    相关文章

      网友评论

          本文标题:Java手记——static

          本文链接:https://www.haomeiwen.com/subject/wirmbqtx.html