美文网首页
java static学习记录

java static学习记录

作者: jinelei | 来源:发表于2019-02-18 13:19 被阅读0次

static可以用来修饰类、成员、方法。

1. 修饰类

通常是静态内部类(不能用static修饰顶级类
譬如常用的builder模式。

class Foo {
    private String name;

    private Foo(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Foo{" +
                "name='" + name + '\'' +
                '}';
    }

    public static class Builder {
        private String name;

        public Builder setName(String n) {
            name = n;
            return this;
        }

        public Foo build() {
            return new Foo(name);
        }
    }

    public static void main(String[] args) {
        System.out.println(new Builder().setName("test").build());
    }
}

什么是顶级类:

class TopLevelClass { //顶级类
    static class NestedTopLevelClass { //嵌套顶级类
    }
}

2. 修饰方法

通常称之为静态方法,是没有this对象的方法,因此不能访问任何非静态变量和方法。也就是在方法中不能使用this、super关键字。

  • 反之可以,实例方法可以访问静态方法、变量,因为静态方法与类绑定

3. 修饰变量

通常称之为静态变量,静态变量被所有对象所共享,在内存中只有一个副本。存放于方法区(共享数据区)的静态区

  • 静态变量的初始化顺序是按照定义顺序进行初始化的
  • static是不允许用来修饰局部变量
  • 静态变量的生命周期跟随类而不随对象

4. 修饰代码块

静态代码块可以放置于任何地方,初始化时将根据定义顺序进行。静态代码块将于类初次加载时调用,只会执行一次。

  • 静态代码块调用是早于同级别构造函数和非静态构造块的
  • 非静态初始化块的代码会在类构造函数之前执行,通常用于多个重载构造函数进行代码复用

5. 静态导包

用import static代替import静态导入包是JDK1.5中的新特性。
import static java.lang.System.out;,意思是导入这个类里的静态方法。

  • 注意这里只能导入静态方法或者静态类
  • 这里导入可能会产生冲突。例如同时导入import static java.lang.Integer.*;import static java.lang.Long.*;

相关文章

  • java static学习记录

    static可以用来修饰类、成员、方法。 1. 修饰类 通常是静态内部类(不能用static修饰顶级类)譬如常用的...

  • Java中的static和final

    java中的static和final 此篇文章是记录我在学习Java中static和final关键字的笔记。 st...

  • Java起步

    从今天开始,每天记录一下java public class HelloWorld { public static...

  • Java学习笔记

    Java学习笔记 day1 public class Hello2 { ​ public static voi...

  • 2019-03-06 Java Interface

    Java static static 特点 static是一个修饰符,用于修饰成员。 static修饰的成员被所有...

  • 2019-03-07 Java static

    Java static static 特点 static是一个修饰符,用于修饰成员。 static修饰的成员被所有...

  • 杂记

    记录一些随手遇到的小知识点 Java 中为什么使用单例和static一致与区别? 一致:单例和static全局唯一...

  • Test

    ```java public static void test() {} ```

  • 无标题文章

    ```java public static void main() { ```

  • 我的乌龟流星雨

    import java.awt.*; public class java{ public static void ...

网友评论

      本文标题:java static学习记录

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