java類中的靜態(tài)代碼塊,java靜態(tài)代碼塊和非靜態(tài)代碼塊

java中靜態(tài)代碼塊 static的作用

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

創(chuàng)新互聯(lián)于2013年成立,先為尉氏等服務(wù)建站,尉氏等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為尉氏企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

比如說(shuō):

寫連接數(shù)據(jù)庫(kù)的那些內(nèi)容時(shí),

經(jīng)常有classforName("XXX"),用于加載一些東西,這些東西就可以寫在靜態(tài)代碼塊中。

還有一些,你想讓類加載時(shí)就執(zhí)行的程序也可以放在里面。

java中靜態(tài)代碼塊的作用跟用法

Java靜態(tài)代碼塊的作用:Java靜態(tài)代碼塊中的代碼會(huì)在類加載JVM時(shí)運(yùn)行,且只被執(zhí)行一次,也就是說(shuō)這些代碼不需要實(shí)例化類就能夠被調(diào)用。一般情況下,如果有些代碼必須在項(xiàng)目啟動(dòng)的時(shí)候就執(zhí)行的時(shí)候,就需要使用靜態(tài)代碼塊。

Java靜態(tài)代碼塊的用法:一個(gè)類可以使用不包含在任何方法體中的靜態(tài)代碼塊,當(dāng)類被載入時(shí),靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來(lái)執(zhí)行類屬性的初始化。例如:

static

{

int a=0;

}

java中的靜態(tài)代碼塊、代碼塊、構(gòu)造器的執(zhí)行順序是怎樣呢,這三者有什么作用呢

先說(shuō)執(zhí)行順序:我們?cè)趎ew一個(gè)對(duì)象時(shí),如果類還沒(méi)加載,就需要先將類加載到內(nèi)存,此時(shí)就會(huì)執(zhí)行靜態(tài)代碼塊,在創(chuàng)建對(duì)象時(shí),是先執(zhí)行代碼塊,然后執(zhí)行構(gòu)造器。所以靜態(tài)代碼塊、代碼塊、構(gòu)造器的執(zhí)行順序是:靜態(tài)代碼塊→代碼塊→構(gòu)造器。

再說(shuō)作用:靜態(tài)代碼塊是用于初始化類的(在加載類時(shí)執(zhí)行,只執(zhí)行一次),代碼塊是用于初始化對(duì)象的(在創(chuàng)建對(duì)象時(shí)執(zhí)行,每次創(chuàng)建對(duì)象時(shí)都執(zhí)行),構(gòu)造器是用于創(chuàng)建對(duì)象的。

java中詳解靜態(tài)代碼塊,構(gòu)造代碼塊,構(gòu)造方法。求簡(jiǎn)單易懂的解釋

靜態(tài)代碼塊:只要一用到某個(gè)類,那么這個(gè)類的靜態(tài)代碼塊就先執(zhí)行,比如:

public class Dog(){

int i = 0;

static {

i = 1;

}

public Dog(){

i = 2;

}

}當(dāng)你new 一個(gè)Dog()對(duì)象時(shí),首先i=

1 會(huì)執(zhí)行,然后才執(zhí)行

public Dog(){}這個(gè)方法。

pulic

Dog() 是與類同名、沒(méi)有返回值的方法,也就是構(gòu)造方法。

構(gòu)造方法的作用是用來(lái)初始化一個(gè)對(duì)象的。比如你可以在里面寫

i

=

2;

那么當(dāng)你 Dog

d

=

new

Dog()執(zhí)行這段代碼的時(shí)候,是這樣的:

首先

i

=

;

然后執(zhí)行static 靜態(tài)代碼塊,此時(shí)i=

1;

最后執(zhí)行public

Dog();

i

=

2;

java中,什么時(shí)候要用到靜態(tài)語(yǔ)句塊?它有何作用呢?

一 般情況下,如果有些代碼必須在項(xiàng)目啟動(dòng)的時(shí)候就執(zhí)行的時(shí)候,需要使用靜態(tài)代碼塊,這種代碼是主動(dòng)執(zhí)行的

(1)在Java里,可以定義一個(gè)不需要?jiǎng)?chuàng)建對(duì)象的方法,這種方法就是靜態(tài)方法。

(2)靜態(tài)變量是屬于整個(gè)類的變量而不是屬于某個(gè)對(duì)象的。

(3)一個(gè)類可以使用不包含在任何方法體中的靜態(tài)代碼塊,當(dāng)類被載入時(shí),靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來(lái)執(zhí)行類屬性的初始化。

java 靜態(tài)代碼塊 靜態(tài)方法

靜態(tài)代碼塊:有些代碼必須在項(xiàng)目啟動(dòng)的時(shí)候就執(zhí)行,這種代碼是主動(dòng)執(zhí)行的(當(dāng)類被載入時(shí),靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來(lái)執(zhí)行類屬性的初始化)

靜態(tài)方法:需要在項(xiàng)目啟動(dòng)的時(shí)候就初始化,在不創(chuàng)建對(duì)象的情況下,這種代碼是被動(dòng)執(zhí)行的(靜態(tài)方法在類加載的時(shí)候就已經(jīng)加載

可以用類名直接調(diào)用)。

兩者的區(qū)別是:靜態(tài)代碼塊是自動(dòng)執(zhí)行的,

靜態(tài)方法是被調(diào)用的時(shí)候才執(zhí)行的.

文章標(biāo)題:java類中的靜態(tài)代碼塊,java靜態(tài)代碼塊和非靜態(tài)代碼塊
文章網(wǎng)址:http://muchs.cn/article18/hcjcdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、小程序開(kāi)發(fā)、品牌網(wǎng)站建設(shè)、用戶體驗(yàn)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司