新聞中心
Java靜態(tài)代碼塊和靜態(tài)變量是Java編程中的重要概念,它們在類加載時執(zhí)行,且只會執(zhí)行一次,本文將詳細介紹Java靜態(tài)代碼塊和靜態(tài)變量的概念、特點、用法以及實例。

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、寶興網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為寶興等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
靜態(tài)變量
1、概念
靜態(tài)變量(Static Variable)是一種特殊的成員變量,它屬于類而不是類的實例,靜態(tài)變量在類加載時分配內(nèi)存空間,且只會分配一次,所有實例共享同一個靜態(tài)變量的值。
2、特點
靜態(tài)變量屬于類,而不是類的實例。
靜態(tài)變量在類加載時分配內(nèi)存空間,且只會分配一次。
所有實例共享同一個靜態(tài)變量的值。
靜態(tài)變量可以通過類名直接訪問,也可以通過實例訪問。
3、用法
靜態(tài)變量通常用于存儲類的全局狀態(tài)或常量。
public class MyClass {
public static int num = 0; // 定義一個靜態(tài)變量num
}
4、實例
public class MyClass {
public static int num = 0; // 定義一個靜態(tài)變量num
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
obj1.num = 10; // 修改靜態(tài)變量的值
System.out.println("obj1.num: " + obj1.num); // 輸出:obj1.num: 10
System.out.println("obj2.num: " + obj2.num); // 輸出:obj2.num: 10
}
}
靜態(tài)代碼塊
1、概念
靜態(tài)代碼塊(Static Block)是一種特殊的代碼塊,它在類加載時執(zhí)行,且只會執(zhí)行一次,靜態(tài)代碼塊通常用于初始化靜態(tài)變量或執(zhí)行其他需要在類加載時完成的操作。
2、特點
靜態(tài)代碼塊在類加載時執(zhí)行,且只會執(zhí)行一次。
靜態(tài)代碼塊可以訪問靜態(tài)變量和其他靜態(tài)代碼塊。
靜態(tài)代碼塊不能訪問非靜態(tài)成員(如實例變量和普通方法)。
3、用法
靜態(tài)代碼塊通常用于初始化靜態(tài)變量或執(zhí)行其他需要在類加載時完成的操作。
public class MyClass {
public static int num = 0; // 定義一個靜態(tài)變量num
static { // 定義一個靜態(tài)代碼塊
num = 10; // 初始化靜態(tài)變量的值
System.out.println("靜態(tài)代碼塊執(zhí)行"); // 輸出:靜態(tài)代碼塊執(zhí)行
}
}
4、實例
public class MyClass {
public static int num = 0; // 定義一個靜態(tài)變量num
static { // 定義一個靜態(tài)代碼塊
num = 10; // 初始化靜態(tài)變量的值
System.out.println("靜態(tài)代碼塊執(zhí)行"); // 輸出:靜態(tài)代碼塊執(zhí)行
}
public static void main(String[] args) {
System.out.println("main方法執(zhí)行"); // 輸出:main方法執(zhí)行
System.out.println("num: " + num); // 輸出:num: 10
}
}
靜態(tài)代碼塊與靜態(tài)變量的區(qū)別與聯(lián)系
1、區(qū)別:
作用不同:靜態(tài)變量用于存儲類的全局狀態(tài)或常量,而靜態(tài)代碼塊用于初始化靜態(tài)變量或執(zhí)行其他需要在類加載時完成的操作。
執(zhí)行時機不同:靜態(tài)變量在類加載時分配內(nèi)存空間,而靜態(tài)代碼塊在類加載時執(zhí)行,但只有當(dāng)靜態(tài)代碼塊被執(zhí)行時,才會對靜態(tài)變量進行初始化。
訪問權(quán)限不同:靜態(tài)變量可以通過類名直接訪問,也可以通過實例訪問;而靜態(tài)代碼塊只能通過類名訪問。
生命周期不同:靜態(tài)變量的生命周期與類相同,只要類存在,靜態(tài)變量就存在;而靜態(tài)代碼塊只在類加載時執(zhí)行一次,之后不再執(zhí)行。
2、聯(lián)系:
都是屬于類的成員,而不是類的實例。
都可以在類加載時執(zhí)行特定的操作。
本文標(biāo)題:java靜態(tài)代碼塊和靜態(tài)變量
網(wǎng)頁URL:http://m.fisionsoft.com.cn/article/cddddsh.html


咨詢
建站咨詢
