Java靜態代碼塊的作用:Java靜態代碼塊中的代碼會在類加載JVM時運行,且只被執行一次,也就是說這些代碼不需要實例化類就能夠被調用。一般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,就需要使用靜態代碼塊。

成都創新互聯專注于企業全網整合營銷推廣、網站重做改版、蒲城網站定制設計、自適應品牌網站建設、成都h5網站建設、購物商城網站建設、集團公司官網建設、成都外貿網站制作、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為蒲城等各大城市提供網站開發制作服務。
Java靜態代碼塊的用法:一個類可以使用不包含在任何方法體中的靜態代碼塊,當類被載入時,靜態代碼塊被執行,且只被執行一次,靜態塊常用來執行類屬性的初始化。例如:
static
{
int a=0;
}
1. 局部代碼塊
作用在方法當中,作用是控制變量的生命周期:
public void show(){
{
System.out.println("局部代碼塊運行!");
}
}123456
在程序中當我們定義完成一個局部變量x之后,并且在接下來的代碼中,不想再用到它時,那么就沒必要讓x在內存中繼續占用空間。因此就有了局部代碼塊。
2. 構造代碼塊
作用在類的定義Body中,作用是給類的部分字段統一初始化:
public class Apple {
private String size;
//構造代碼塊
{
System.out.println("構造代碼塊運行!");
size = "E";
}
}
12345678910
構造代碼塊與構造函數的區別是:構造代碼塊是給所有對象進行統一初始化,而構造函數是給對應的對象初始化,因為構造函數是可以多個的,運行哪個構造函數就會建立什么樣的對象,但無論建立哪個對象,都會先執行相同的構造代碼塊。也就是說,構造代碼塊中定義的是不同對象共性的初始化內容。所以理所當然的,構造代碼塊在構造函數之前執行。
3. 靜態代碼塊
作用有兩個:
(1)給類的靜態變量賦值;
(2)聲明靜態變量;
作用在類的Body中,對類中的靜態變量初始化:
public class APP {
static int x, y; // 靜態變量
static {
x = 5; // 給靜態變量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
直接在類中定義且沒有加static關鍵字的代碼塊稱為{}構造代碼塊。構造代碼塊在創建對象時被調用,每次創建對象都會被調用,并且構造代碼塊的執行次序優先于類構造函數。
靜態代碼塊:在java中使用static關鍵字聲明的代碼塊。靜態塊用于初始化類,為類的屬性初始化。每個靜態代碼塊只會執行一次。由于JVM在加載類時會執行靜態代碼塊,所以靜態代碼塊先于主方法執行。
注意:1 靜態代碼塊不能存在于任何方法體內。2 靜態代碼塊不能直接訪問靜態實例變量和實例方法,需要通過類的實例對象來訪問。
static{...}是靜態塊,而只有{...}的是叫做構造塊。
靜態塊在一個程序里面只執行一次;
而構造塊是,只要建立一個對象,構造代碼塊都會執行一次。
靜態塊優先于主方法的執行,靜態塊優先于構造快,然后是構造方法的執行,而且只執行一次!
所以輸出結果是:
static
block
instance1
block
instance2
代碼塊有構造代碼塊和靜態代碼塊,靜態代碼塊是類加載的時候執行的,一共只執行一次,構造代碼塊是創建類對象的時候執行的,創建一個對象執行一次,代碼塊都是用于初始化的,而構造函數是用于創建對象的。
本文題目:java中代碼塊是什么 java中的代碼塊有哪些
文章路徑:http://www.yijiale78.com/article26/hihgcg.html
成都網站建設公司_創新互聯,為您提供軟件開發、App開發、ChatGPT、做網站、營銷型網站建設、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯