java之static关键字知多少

  • 2019 年 11 月 28 日
  • 笔记

今天我们要分享的内容就是static关键字的使用,static关键字或许是我们接触最早的一个关键字了,如我们看到下面的示例程序。

public static void main(String[] args) {          System.out.println("hello world");    }

这就是我们初学java时输出的java程序示例了,这里不是简单输出一句"hello world",看到static关键字了吧。

static关键字修饰的方法是类方法,其生命周期与类一样,大部分我们将需要公共的方法封装在一个工具类,将方法使用static关键字进行修饰,然后类直接调用对应的方法即可。

 public static void main(String[] args) {          System.out.println("str = " + getString());      }        private static String getString() {          return "hello world";      }

其实我个人觉得static关键字比较优美的使用就是在单例和静态代码块方面的使用了,下面我们进行示例程序的编写咯。

package com.wpw.springbootjdbc;    import java.util.ArrayList;  import java.util.List;    public class Test {      private static List<Integer> arrayList = new ArrayList<>();        static {          assert false;          arrayList.add(1);          arrayList.add(2);          arrayList.add(3);          arrayList.add(4);          arrayList.add(5);          arrayList.add(6);          arrayList.add(7);          arrayList.add(8);          arrayList.add(9);          arrayList.add(10);      }        public static void main(String[] args) {          arrayList.forEach(System.out::print);          arrayList.clear();      }    }

上面我们在静态代码块里面对集合进行数据的添加,最后在main方法进行集合数据的输出,是不是很容易理解,其实这种用法自己很早之前就用到了,后面觉得输出文章这个还是自己要写一些内容进来的。

我们继续看下static关键字在其他地方的使用吧,然后我们还是看下示例程序。

package com.wpw.springbootjdbc;    import lombok.AllArgsConstructor;  import lombok.Builder;  import lombok.Data;  import lombok.NoArgsConstructor;  import lombok.experimental.Accessors;    public class Test {      public static void main(String[] args) {          User user = new User().setId(1).setName("backCoder");          System.out.println("user = " + user);      }        @AllArgsConstructor      @NoArgsConstructor      @Builder      @Data      @Accessors(chain = true)      private static class User {          private Integer id;          private String name;      }  }

在我们的类里面使用static关键字定义一个静态内部类也是很常用的一种操作了,上面的示例程序中,我们使用了static关键字定义了一个user类,在main方法中进行数据信息的数据,是不是很方便呢。

这里面没有使用static关键字去实现单例,想要了解单例的实现可以看下历史信息进行查找下。

好了,或许你会说我们可以使用static关键字结合final去定义一个常量,方便使用,确实,由于这个很容易理解,自己就不再这里去测试了,感兴趣的自己可以去了解下。