中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

java static關鍵(jian)字(zi)

最近學習jsp才發現自己的java基礎不夠牢固,于是執筆對java重新來過,溫習一下這個強大的面向對象的語言。
今天看到static關鍵(jian)字,感覺自(zi)己(ji)掌握的也不牢靠,于是查(cha)閱了(le)很多的資料來寫下(xia)這篇文章,一方面(mian)也是為java奮斗(dou)小生(sheng)寫的指示牌(pai),另一方面(mian)也是為了(le)鞏固自(zi)己(ji)的知識。

static表面看起來就可以看出其的作用所在,那就是靜態,在java里,可以用它進行三種形式的修飾。
1、修飾字段
2、修飾方法
3、修(xiu)飾一個代(dai)碼(ma)塊

我們先來看(kan)第一個(ge)修飾字段

public class Temp {
	public static int i = 0;
	public static float f = 1.2f;
	public static double d = 1.2;
	public static boolean b = true;
}

這里把 int float double boolean類型的字段都修飾了一遍,當該類的class文件被加載的時候,這幾個字段的內存就會被初始化,然而雖然它們在這個類中,卻跟這個Temp類沒有多大的千絲萬縷的關系,他們是獨立的,是一塊靜態內存,所謂靜態,就是編譯時已經被初始化了,所以他們比一般的變量要快。而訪問它們的時候也是自然會很方便。
我們不必去創建這個類的對象,而是直接通過類名去訪問即可。
例如:

public class Main {
	public static void main(String[] args){
		System.out.println(Temp.i);
		System.out.println(Temp.f);
		System.out.println(Temp.d);
		System.out.println(Temp.b);
	}
}

這樣實際是沒有語法問題的,因為它們是靜態的。
下(xia)面來看一下(xia)用static關鍵字修(xiu)飾的方(fang)法(fa)。這個和修(xiu)飾字段的意義差不多(duo),它也被一塊獨立(li)的靜態內(nei)存所儲(chu)存著,也可以(yi)通過(guo)類名直接調(diao)用,或者我們可以(yi)稱它為類方(fang)法(fa)

public static void func(){
	System.out.println("hello world");
}

這(zhe)樣的話(hua)我們(men)就可以(yi)在(zai)主函數中通過它的類名來調用了,這(zhe)樣的話(hua)是非常方(fang)便的,也很有(you)利(li)于解耦(ou)。

Temp.func();//hello wrold

第(di)三種就是由一對(dui)大(da)括號加上static關鍵字而修飾的靜態代碼塊

static {
    //
}

通常我們用它來初始化靜態的(de)變量和對象

public class Temp {
	static String a = null;
	static{
		a = "haodawang";
	}
}

我們在類中定義一個String類型的變量,并給他指明為null,而在static代碼塊中我們實現了對它的初始化,但是怎樣調用這個static代碼塊呢?目前來說有兩種方法。
1、調用在static代碼塊中初始化的變量
2、創建該類的(de)實例

先來看第一種方式

public class Main {
	public static void main(String[] args){
		System.out.println(Temp.a);
	}
}

我(wo)(wo)們這(zhe)里直接打印(yin)了Temp.a,如(ru)果static代碼塊沒有被執行(xing),那么(me)這(zhe)里應該會(hui)是(shi)Null,但是(shi)通(tong)過打印(yin)我(wo)(wo)們會(hui)看到(dao)打印(yin)出來(lai)的(de)是(shi)haodawang,這(zhe)也是(shi)我(wo)(wo)們意(yi)(yi)料之中(zhong)的(de)事(shi)情,正如(ru)我(wo)(wo)們前(qian)面所說(shuo),被調用代碼塊內的(de)變量時,整個代碼塊都會(hui)被執行(xing),值得注(zhu)意(yi)(yi)的(de)是(shi),不管怎么(me)樣,static代碼塊都會(hui)只執行(xing)一次,執行(xing)一次之后(hou)就再也不會(hui)被執行(xing)。

其實第二(er)種大家(jia)也可以(yi)推斷(duan)出來了,因為被加載(zai)了class文件,所以(yi)static代碼(ma)塊自然會被加載(zai)。這里我(wo)也不再去(qu)用代碼(ma)給大家(jia)演示(shi),大家(jia)可以(yi)自己寫寫試(shi)試(shi)吧(ba)。

posted @ 2016-10-16 17:59  浩大王  閱讀(248)  評論(0)    收藏  舉報