java多線程 java的可變參數(shù)為什么只能放在最后一個?
java的可變參數(shù)為什么只能放在最后一個?變量參數(shù)是Java1.5的一個新特性。當參數(shù)個數(shù)不確定且類型確定時使用。Java將變量參數(shù)視為數(shù)組。變量參數(shù)有一個非常重要的說明,即當一個方法中有多個參數(shù)時,
java的可變參數(shù)為什么只能放在最后一個?
變量參數(shù)是Java1.5的一個新特性。當參數(shù)個數(shù)不確定且類型確定時使用。Java將變量參數(shù)視為數(shù)組。
變量參數(shù)有一個非常重要的說明,即當一個方法中有多個參數(shù)時,它必須在最后一項中。
原因:變量參數(shù)用于傳遞不確定參數(shù)的數(shù)量,這意味著無論您提供多少參數(shù),只要是其類型,都將正確傳遞。如果它放在前面,并且傳遞了所有參數(shù),那么后面相同類型的參數(shù)將不會被傳遞。
而且,Java無法區(qū)分傳入的參數(shù)是屬于前一個變量參數(shù)還是屬于后一個參數(shù)。它按順序傳遞參數(shù)。例如,您編寫的方法中的形式參數(shù)是
public void method(int x,string name);
調(diào)用方法時,傳入?yún)?shù)的順序必須是
int first,然后是string,例如,method(18,“Bob”);如果順序不匹配,則為method(“Bob”,18);將報告錯誤。
因此,為了防止不必要的錯誤,Java只規(guī)定變量參數(shù)必須放在參數(shù)列表的最后一項,并且一個方法只能有一個變量參數(shù)。
以上只是一些個人觀點。如有不妥之處,歡迎批評指正
java能為方法參數(shù)設(shè)置默認參數(shù)嗎?
無法設(shè)置默認參數(shù)。因為同時支持“默認參數(shù)”和“方法重載”,所以存在歧義問題。為了簡單起見,Java可能不使用“默認參數(shù)”。使用“方法重載”可以間接達到“默認參數(shù)”的效果,避免代碼太黑。例如,重載方法是間接實現(xiàn)的:public class a{public void DOA(inta)}public void DOA(){這個。doA(0)//這里默認傳入0,類似于此方法重載。默認值}
只要定義了它,就會分配內(nèi)存空間。為什么我們要把記憶分成四個區(qū)域,比如靜態(tài)區(qū)域?1堆棧區(qū)域由編譯器自動分配和釋放,用于存儲函數(shù)的參數(shù)值和局部變量的值。在執(zhí)行了特定的方法之后,系統(tǒng)會自動釋放JVM的內(nèi)存資源。2堆區(qū)域通常由程序員分配和釋放,以存儲由new創(chuàng)建的對象和數(shù)組。JVM會不時地查看這個對象。如果沒有引用此對象,它將循環(huán)使用。三。靜態(tài)區(qū)域存儲全局變量,靜態(tài)變量和字符串常量不釋放。4代碼區(qū)—存儲程序中方法的二進制代碼,多個對象共享一個代碼空間區(qū)域