當前位置:首頁 » 編程語言 » java中靜態代碼塊

java中靜態代碼塊

發布時間: 2022-08-01 03:50:28

『壹』 java中static 靜態代碼塊有什麼用

初始化,比起構造方法他更方便,能在裡面像一般寫程序那樣書寫你想利用或表達的邏輯,比如,一般情況下構造方法里你是不能調用一般非靜態類的方法的,而靜態代碼塊里可以持有某一類的引用而使用一般的方法,這樣大大簡化了代碼,而又起到了初始化的效果。

『貳』 java中詳解靜態代碼塊,構造代碼塊,構造方法。求簡單易懂的解釋

靜態代碼塊:只要一用到某個類,那麼這個類的靜態代碼塊就先執行,比如:
public class Dog(){
int i = 0;
static {
i = 1;
}
public Dog(){
i = 2;
}
}當你new 一個Dog()對象時,首先i=
1 會執行,然後才執行
public Dog(){}這個方法。

pulic
Dog() 是與類同名、沒有返回值的方法,也就是構造方法。
構造方法的作用是用來初始化一個對象的。比如你可以在裡面寫
i
=
2;
那麼當你 Dog
d
=
new
Dog()執行這段代碼的時候,是這樣的:
首先
i
=
0
;
然後執行static 靜態代碼塊,此時i=
1;
最後執行public
Dog();
i
=
2;

『叄』 java中,什麼時候要用到靜態語句塊它有何作用呢

一 般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,需要使用靜態代碼塊,這種代碼是主動執行的

『肆』 java中的靜態代碼塊、代碼塊、構造器的執行順序是怎樣呢,這三者有什麼作用呢

先說執行順序:我們在new一個對象時,如果類還沒載入,就需要先將類載入到內存,此時就會執行靜態代碼塊,在創建對象時,是先執行代碼塊,然後執行構造器。所以靜態代碼塊、代碼塊、構造器的執行順序是:靜態代碼塊→代碼塊→構造器。

再說作用:靜態代碼塊是用於初始化類的(在載入類時執行,只執行一次),代碼塊是用於初始化對象的(在創建對象時執行,每次創建對象時都執行),構造器是用於創建對象的。

『伍』 Java的靜態塊和初始化塊分別何時執行有什麼區別

靜態初始化塊:當類第一次載入時執行。

非靜態初始化塊:非靜態初始化塊會在構造函數執行時,且在構造函數主體代碼執行之前被執行。

區別如下:

1、執行次數不同

靜態塊只執行一次,初始化塊可以執行多次。

2、作用不同

靜態初始化塊僅能初始化類變數,即static修飾的數據成員。

非靜態初始化塊可以初始化類的實例變數。

(5)java中靜態代碼塊擴展閱讀:

使用Java靜態代碼塊注意事項:

1、它是隨著類的載入而執行,只執行一次,並優先於主函數。具體說,靜態代碼塊是由類調用的。類調用時,先執行靜態代碼塊,然後才執行主函數的。

2、靜態代碼塊其實就是給類初始化的,而構造代碼塊是給對象初始化的。

3、靜態代碼塊中的變數是局部變數,與普通函數中的局部變數性質沒有區別。

4、一個類中可以有多個靜態代碼塊。

5、對於靜態變數、靜態初始化塊、變數、初始化塊、構造器,它們的初始化順序依次是(靜態變數、靜態初始化塊)>(變數、初始化塊)>構造器。

『陸』 JAVA中 靜態塊的作用

如果有些代碼必須在項目啟動的時候就執行的時候,需要使用靜態代碼塊,這種代碼是主動執行的;需要在項目啟動的時候就初始化,在不創建對象的情 況下,其他程序來調用的時候,需要使用靜態方法,這種代碼是被動執行的. 靜態方法在類載入的時候 就已經載入 可以用類名直接調用

與非靜態代碼區別:

靜態代碼塊,在虛擬機載入類的時候就會載入執行,而且只執行一次;
非靜態代碼塊,在創建對象的時候(即new一個對象的時候)執行,每次創建對象都會執行一次

例:
//普通類
public class PuTong {
public PuTong(){
System.out.print("默認構造方法!-->");
}

//非靜態代碼塊
{
System.out.print("非靜態代碼塊!-->");
}

//靜態代碼塊
static{
System.out.print("靜態代碼塊!-->");
}

public static void test(){
{
System.out.println("普通方法中的代碼塊!");
}
}
}

(6)java中靜態代碼塊擴展閱讀:

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性 。

『柒』 求java大神什麼是靜態代碼塊啊,網上寫的看不懂啊。平時只用過public class 創建類。p

比如你平常寫的方法是public void ff(){}。

靜態代碼塊就是直接 static{ }

這樣寫是因為載入這個類的時候會自動載入這個,不用調用。

給個看個圖片吧。

有問題可以追問,望採納。

『捌』 JAVA中為什麼要定義靜態代碼塊和構造函數呢

您好,提問者:
首先靜態代碼塊的作用是,只執行一次,不管是new還是直接類名。
構造函數用於傳遞或者初始化,如果想要這個類的方法或者變數,必須new初始化。
靜態代碼塊:
用於初始化一些操作,例如資料庫連接、配置文件讀取等。
構造函數:
用於new xxx(值),如果一個類不想被new可以把構造方法寫為private類型。

『玖』 java中靜態代碼塊和構造代碼塊的區別

直接在類中定義且沒有加static關鍵字的代碼塊稱為{}構造代碼塊。構造代碼塊在創建對象時被調用,每次創建對象都會被調用,並且構造代碼塊的執行次序優先於類構造函數。
靜態代碼塊:在java中使用static關鍵字聲明的代碼塊。靜態塊用於初始化類,為類的屬性初始化。每個靜態代碼塊只會執行一次。由於JVM在載入類時會執行靜態代碼塊,所以靜態代碼塊先於主方法執行。

注意:1 靜態代碼塊不能存在於任何方法體內。2 靜態代碼塊不能直接訪問靜態實例變數和實例方法,需要通過類的實例對象來訪問。

熱點內容
起床的戰爭玩什麼伺服器 發布:2025-01-23 21:03:06 瀏覽:140
企業級安卓手機防毒軟體哪個好 發布:2025-01-23 20:59:28 瀏覽:242
資料庫精美 發布:2025-01-23 20:37:05 瀏覽:234
mysql怎麼編譯驅動 發布:2025-01-23 20:35:15 瀏覽:466
修改資料庫的語句是 發布:2025-01-23 20:26:17 瀏覽:761
linuxping域名 發布:2025-01-23 20:24:34 瀏覽:478
神經網路演算法應用 發布:2025-01-23 20:18:36 瀏覽:218
冒險島按鍵精靈腳本下載 發布:2025-01-23 19:46:50 瀏覽:751
安卓訪問共享需要開通什麼服務 發布:2025-01-23 19:43:01 瀏覽:518
vs2015c語言調試 發布:2025-01-23 19:42:47 瀏覽:142