類加載的時候就會去執(zhí)行靜態(tài)代碼塊的內容。

創(chuàng)新互聯(lián)于2013年成立,先為尉氏等服務建站,尉氏等地企業(yè),進行企業(yè)商務咨詢服務。為尉氏企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
比如說:
寫連接數(shù)據(jù)庫的那些內容時,
經常有classforName("XXX"),用于加載一些東西,這些東西就可以寫在靜態(tài)代碼塊中。
還有一些,你想讓類加載時就執(zhí)行的程序也可以放在里面。
Java靜態(tài)代碼塊的作用:Java靜態(tài)代碼塊中的代碼會在類加載JVM時運行,且只被執(zhí)行一次,也就是說這些代碼不需要實例化類就能夠被調用。一般情況下,如果有些代碼必須在項目啟動的時候就執(zhí)行的時候,就需要使用靜態(tài)代碼塊。
Java靜態(tài)代碼塊的用法:一個類可以使用不包含在任何方法體中的靜態(tài)代碼塊,當類被載入時,靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來執(zhí)行類屬性的初始化。例如:
static
{
int a=0;
}
先說執(zhí)行順序:我們在new一個對象時,如果類還沒加載,就需要先將類加載到內存,此時就會執(zhí)行靜態(tài)代碼塊,在創(chuàng)建對象時,是先執(zhí)行代碼塊,然后執(zhí)行構造器。所以靜態(tài)代碼塊、代碼塊、構造器的執(zhí)行順序是:靜態(tài)代碼塊→代碼塊→構造器。
再說作用:靜態(tài)代碼塊是用于初始化類的(在加載類時執(zhí)行,只執(zhí)行一次),代碼塊是用于初始化對象的(在創(chuàng)建對象時執(zhí)行,每次創(chuàng)建對象時都執(zhí)行),構造器是用于創(chuàng)建對象的。
靜態(tài)代碼塊:只要一用到某個類,那么這個類的靜態(tài)代碼塊就先執(zhí)行,比如:
public class Dog(){
int i = 0;
static {
i = 1;
}
public Dog(){
i = 2;
}
}當你new 一個Dog()對象時,首先i=
1 會執(zhí)行,然后才執(zhí)行
public Dog(){}這個方法。
pulic
Dog() 是與類同名、沒有返回值的方法,也就是構造方法。
構造方法的作用是用來初始化一個對象的。比如你可以在里面寫
i
=
2;
那么當你 Dog
d
=
new
Dog()執(zhí)行這段代碼的時候,是這樣的:
首先
i
=
;
然后執(zhí)行static 靜態(tài)代碼塊,此時i=
1;
最后執(zhí)行public
Dog();
i
=
2;
一 般情況下,如果有些代碼必須在項目啟動的時候就執(zhí)行的時候,需要使用靜態(tài)代碼塊,這種代碼是主動執(zhí)行的
(1)在Java里,可以定義一個不需要創(chuàng)建對象的方法,這種方法就是靜態(tài)方法。
(2)靜態(tài)變量是屬于整個類的變量而不是屬于某個對象的。
(3)一個類可以使用不包含在任何方法體中的靜態(tài)代碼塊,當類被載入時,靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來執(zhí)行類屬性的初始化。
靜態(tài)代碼塊:有些代碼必須在項目啟動的時候就執(zhí)行,這種代碼是主動執(zhí)行的(當類被載入時,靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來執(zhí)行類屬性的初始化)
靜態(tài)方法:需要在項目啟動的時候就初始化,在不創(chuàng)建對象的情況下,這種代碼是被動執(zhí)行的(靜態(tài)方法在類加載的時候就已經加載
可以用類名直接調用)。
兩者的區(qū)別是:靜態(tài)代碼塊是自動執(zhí)行的,
靜態(tài)方法是被調用的時候才執(zhí)行的.
文章標題:java類中的靜態(tài)代碼塊,java靜態(tài)代碼塊和非靜態(tài)代碼塊
文章網址:http://chinadenli.net/article18/hcjcdp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網站、品牌網站制作、小程序開發(fā)、品牌網站建設、用戶體驗、外貿建站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)