**塊就是用一對{}括起來的**片斷,可能我們往往會忽視它的存在,不就多了一對括號嘛。但是加不加括號的結果可能會有所差別。
先看看面試題:靜態**塊、構造**塊和構造方法的執行的先後順序。
答案是:靜態**塊 > 構造**塊 > 構造方法
首先回答這個問題,需要弄清楚靜態**塊和構造**塊各是什麼。
構造**塊:其實就是類中被花括號包起來的一段**
靜態**塊:有static關鍵字修飾的構造**塊
看看例子:
package為了看清效果,特意將構造**塊放在了靜態**塊的前面,又將這兩個**塊放到類的最後,但是不管怎麼放**塊,結果是不變的,先輸出「靜態**塊」,即便是main方法中沒有new物件也會輸出「靜態**塊」,這就得從靜態的特點說起,類中被static修飾的成員是隨著類的載入而載入,所以只要類載入了,靜態的東西就存在了,因此沒有new物件也會輸出「靜態**塊」而且只有一次。而構造**塊之所以叫構造**塊,正是因為只有構造被呼叫時才會執行,所以每次有構造被呼叫時,構造**塊都會執行一次,並且是先執行構造**塊,再執行構造。cn.reflect;
public
class
demo
public
demo(string name)
public
static
void
main(string args)
//構造**塊
//靜態**塊
static
}
所以上面程式的執行結果是:
靜態**塊
構造**塊
helloworld
構造**塊
除了構造**塊和靜態**塊之外,還有在方法中的**塊--區域性**塊。大家都知道變數都有作用域,而區域性**塊最常用的就是限定變數的生命週期,使變數占用的空間盡可能早的被釋放。
所以,三種的型別的**塊各有各的用處:
區域性**塊:限定變數的生命週期,及早釋放空間;
構造**塊:可抽取構造方法中相同的**出來,提高**利用;
靜態**塊:適用於乙個類中只執行一次的**。
**塊就是用一對{}括起來的**片斷,可能我們往往會忽視它的存在,不就多了一對括號嘛。但是加不加括號的結果可能會有所差別。
先看看面試題:靜態**塊、構造**塊和構造方法的執行的先後順序。
答案是:靜態**塊 > 構造**塊 > 構造方法
首先回答這個問題,需要弄清楚靜態**塊和構造**塊各是什麼。
構造**塊:其實就是類中被花括號包起來的一段**
靜態**塊:有static關鍵字修飾的構造**塊
看看例子:
package為了看清效果,特意將構造**塊放在了靜態**塊的前面,又將這兩個**塊放到類的最後,但是不管怎麼放**塊,結果是不變的,先輸出「靜態**塊」,即便是main方法中沒有new物件也會輸出「靜態**塊」,這就得從靜態的特點說起,類中被static修飾的成員是隨著類的載入而載入,所以只要類載入了,靜態的東西就存在了,因此沒有new物件也會輸出「靜態**塊」而且只有一次。而構造**塊之所以叫構造**塊,正是因為只有構造被呼叫時才會執行,所以每次有構造被呼叫時,構造**塊都會執行一次,並且是先執行構造**塊,再執行構造。cn.reflect;
public
class
demo
public
demo(string name)
public
static
void
main(string args)
//構造**塊
//靜態**塊
static
}
所以上面程式的執行結果是:
靜態**塊
構造**塊
helloworld
構造**塊
除了構造**塊和靜態**塊之外,還有在方法中的**塊--區域性**塊。大家都知道變數都有作用域,而區域性**塊最常用的就是限定變數的生命週期,使變數占用的空間盡可能早的被釋放。
所以,三種的型別的**塊各有各的用處:
區域性**塊:限定變數的生命週期,及早釋放空間;
構造**塊:可抽取構造方法中相同的**出來,提高**利用;
靜態**塊:適用於乙個類中只執行一次的**。
C 面試常見問題(五)
使用動態庫進行鏈結。動態庫 so dll 具體的區別下面這篇部落格講得比較詳細。大家可以移步至 c 靜態庫與動態庫 因此乙個物件的大小 所有非靜態成員大小的總和 由以上分析可以得到菱形繼承物件的記憶體大小問題 includeusing namespace std class a 大小為8,int 4...
面試常見問題
面試時,有幾個問題是公司面試人員常常會提出的,針對這些問題好好準備,在面試時也就不會啞口無言,無言以對了,下面就面試十大必考題做出分析,也許對hr經理也是乙個 1 為什麼想進本公司?這通常是面試官最先問到的問題。此時面試官就開始評斷錄用與否了,建議大家先判斷自己去應徵的工作性質,是專業能力導向呢,或...
面試常見問題
1.如果我們不能提供你所要求的薪水,你還願意來我們公司嗎?你的期望薪水是多少?你想得到的薪水是多 少?如果達不到你的要求,怎麼辦?答 我認為工作最重要的是合作開心,薪酬是其次的,不過我原來的月薪是 元,如果跳槽的話就希望 自己能有點進步,如果不是讓您太為難的話,您看這個工資是不是可以有一點提高?2....