在Java中,我們可以使用靜態塊和非靜態塊在類加載時初始化或執行一些代碼邏輯。
靜態塊指的是使用static修飾的代碼塊,在類初始化時會被執行,且只會執行一次。靜態塊的作用是初始化類的靜態變量,或者在類初始化時執行一些必要的邏輯。
public class MyClass{ static { //靜態塊 } }
非靜態塊是沒有使用static修飾的代碼塊,它會在每次創建對象時都會被執行。非靜態塊的作用是在對象創建時做出一些必要的邏輯。
public class MyClass{ { //非靜態塊 } }
需要注意的是,在一個類中,靜態塊會在非靜態塊之前執行,并且無論是靜態塊還是非靜態塊,都只會執行一次。
靜態塊和非靜態塊的使用場景各不相同。靜態塊適用于一些類初始化時需要執行的邏輯,而非靜態塊適用于每個對象創建時需要執行的邏輯。