成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java代碼塊的使用場景 java在代碼塊的什么位置可以聲明變量

JAVA 靜態(tài)代碼塊和非靜態(tài)代碼塊 作用?

靜態(tài)代碼塊是在類加載進jvm時類實例化之前運行的,比如業(yè)務(wù)場景有這種類初始化時需要加載許多資源,在運行實例化類的時候會影響程序響應(yīng)時間,所以就在項目啟動的時候加載類的時候就初始化了.非靜態(tài)代碼塊是在類實例化的時候才會運行,所以靜態(tài)代碼塊的執(zhí)行一定在非靜態(tài)代碼塊執(zhí)行之前執(zhí)行.至于你上面的第一個問題要看具體業(yè)務(wù)場景和需求,賦值都可以實現(xiàn).第二個問題,可能是寫那句代碼的人要看程序加載后有沒有執(zhí)行那部分代碼而加上的,知道了靜態(tài)代碼塊和非靜態(tài)代碼塊的本質(zhì)區(qū)別,為什么那么做和目的你就應(yīng)該知道了.

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站設(shè)計、宜章網(wǎng)絡(luò)推廣、微信小程序開發(fā)、宜章網(wǎng)絡(luò)營銷、宜章企業(yè)策劃、宜章品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供宜章建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:jinyejixie.com

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

一 般情況下,如果有些代碼必須在項目啟動的時候就執(zhí)行的時候,需要使用靜態(tài)代碼塊,這種代碼是主動執(zhí)行的;需要在項目啟動的時候就初始化,在不創(chuàng)建對象的情 況下,其他程序來調(diào)用的時候,需要使用靜態(tài)方法,這種代碼是被動執(zhí)行的. 靜態(tài)方法在類加載的時候 就已經(jīng)加載 可以用類名直接調(diào)用

比如main方法就必須是靜態(tài)的 這是程序入口

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

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

靜態(tài)方法

(1)在Java里,可以定義一個不需要創(chuàng)建對象的方法,這種方法就是靜態(tài)方法。要實現(xiàn)這樣的效果,只需要在類中定義的方法前加上static關(guān)鍵字。例如:

public static int maximum(int n1,int n2)

使用類的靜態(tài)方法時,注意:

a在靜態(tài)方法里只能直接調(diào)用同類中其他的靜態(tài)成員(包括變量和方法),而不能直接訪問類中的非靜態(tài)成員。這是因為,對于非靜態(tài)的方法和變量,需要先創(chuàng)建類的實例對象后才可使用,而靜態(tài)方法在使用前不用創(chuàng)建任何對象。

b 靜態(tài)方法不能以任何方式引用this和super關(guān)鍵字,因為靜態(tài)方法在使用前不用創(chuàng)建任何實例對象,當(dāng)靜態(tài)方法調(diào)用時,this所引用的對象根本沒有產(chǎn)生。

(2)靜態(tài)變量是屬于整個類的變量而不是屬于某個對象的。注意不能把任何方法體內(nèi)的變量聲明為靜態(tài),例如:

fun()

{

static int i=0;//非法。

}

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

static

{

}

Java常見代碼塊的作用與區(qū)別

1. 局部代碼塊

作用在方法當(dāng)中,作用是控制變量的生命周期:

public void show(){

{

System.out.println("局部代碼塊運行!");

}

}123456

在程序中當(dāng)我們定義完成一個局部變量x之后,并且在接下來的代碼中,不想再用到它時,那么就沒必要讓x在內(nèi)存中繼續(xù)占用空間。因此就有了局部代碼塊。

2. 構(gòu)造代碼塊

作用在類的定義Body中,作用是給類的部分字段統(tǒng)一初始化:

public class Apple {

private String size;

//構(gòu)造代碼塊

{

System.out.println("構(gòu)造代碼塊運行!");

size = "E";

}

}

12345678910

構(gòu)造代碼塊與構(gòu)造函數(shù)的區(qū)別是:構(gòu)造代碼塊是給所有對象進行統(tǒng)一初始化,而構(gòu)造函數(shù)是給對應(yīng)的對象初始化,因為構(gòu)造函數(shù)是可以多個的,運行哪個構(gòu)造函數(shù)就會建立什么樣的對象,但無論建立哪個對象,都會先執(zhí)行相同的構(gòu)造代碼塊。也就是說,構(gòu)造代碼塊中定義的是不同對象共性的初始化內(nèi)容。所以理所當(dāng)然的,構(gòu)造代碼塊在構(gòu)造函數(shù)之前執(zhí)行。

3. 靜態(tài)代碼塊

作用有兩個:

(1)給類的靜態(tài)變量賦值;

(2)聲明靜態(tài)變量;

作用在類的Body中,對類中的靜態(tài)變量初始化:

public class APP {

static int x, y; // 靜態(tài)變量

static {

x = 5; // 給靜態(tài)變量x賦值

}

public static void myMethod() {

y = x++ + ++x; // x++ 先使用x的值再加1;++x先加1再使用x的值

}

public static void main(String[] args) {

x--;

myMethod();

System.out.println(x + y + ++x);

}

}

輸出:23

網(wǎng)站題目:java代碼塊的使用場景 java在代碼塊的什么位置可以聲明變量
鏈接分享:http://jinyejixie.com/article38/ddisisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、App開發(fā)網(wǎng)站設(shè)計公司、自適應(yīng)網(wǎng)站品牌網(wǎng)站制作、用戶體驗

廣告

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

網(wǎng)站優(yōu)化排名
屏边| 万安县| 宿州市| 留坝县| 娱乐| 阿拉善右旗| 贵州省| 高陵县| 德州市| 孝昌县| 额济纳旗| 冕宁县| 黄龙县| 宜丰县| 云浮市| 清原| 松阳县| 庆云县| 楚雄市| 嘉峪关市| 辉南县| 九江县| 阜南县| 烟台市| 闵行区| 昌图县| 平山县| 托里县| 罗平县| 安福县| 安新县| 扎囊县| 昌邑市| 华阴市| 安福县| 云南省| 灌南县| 丹棱县| 拜泉县| 井研县| 博乐市|