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去定義一個常量,方便使用,確實,由於這個很容易理解,自己就不再這裡去測試了,感興趣的自己可以去了解下。

Tags: