java靜態(tài)方法的好處 final修飾的數(shù)組什么不可以被改變?
final修飾的數(shù)組什么不可以被改變?final修飾符分兩種情況:如果是修飾基本類型,如果整形,浮點型,如finalinti=100,這里的i的值是不能變的如果修飾的是對象,如finalStrings
final修飾的數(shù)組什么不可以被改變?
final修飾符分兩種情況:如果是修飾基本類型,如果整形,浮點型,如finalinti=100,這里的i的值是不能變的如果修飾的是對象,如finalStrings="dddd",這里的引用是不能變的,比如你不能這樣寫:s="bbbbb"
java中,static final和單獨static有什么區(qū)別?
final可以修飾:屬性,方法,類,局部變量(方法中的變量)
final修飾的屬性的初始化可以在編譯期,也可以在運行期,初始化后不能被改變。
final修飾的屬性跟具體對象有關,在運行期初始化的final屬性,不同對象可以有不同的值。
final修飾的屬性表明是一個常數(shù)(創(chuàng)建后不能被修改)。
final修飾的方法表示該方法在子類中不能被重寫,final修飾的類表示該類不能被繼承。
對于基本類型數(shù)據(jù),final會將值變?yōu)橐粋€常數(shù)(創(chuàng)建后不能被修改);但是對于對象句柄(亦可稱作引用或者指針),final會將句柄變?yōu)橐粋€常數(shù)(進行聲明時,必須將句柄初始化到一個具體的對象。而且不能再將句柄指向另一個對象。但是,對象的本身是可以修改的。這一限制也適用于數(shù)組,數(shù)組也屬于對象,數(shù)組本身也是可以修改的。方法參數(shù)中的final句柄,意味著在該方法內部,我們不能改變參數(shù)句柄指向的實際東西,也就是說在方法內部不能給形參句柄再另外賦值)。
static可以修飾:屬性,方法,代碼段,內部類(靜態(tài)內部類或嵌套內部類)
static修飾的屬性的初始化在編譯期(類加載的時候),初始化后能改變。
static修飾的屬性所有對象都只有一個值。
static修飾的屬性強調它們只有一個。
static修飾的屬性、方法、代碼段跟該類的具體對象無關,不創(chuàng)建對象也能調用static修飾的屬性、方法等
static和“this、super”勢不兩立,static跟具體對象無關,而this、super正好跟具體對象有關。
static不可以修飾局部變量。
static final和final static沒什么區(qū)別,一般static寫在前面。
static修飾的屬性強調它們只有一個,final修飾的屬性表明是一個常數(shù)(創(chuàng)建后不能被修改)。static final修飾的屬性表示一旦給值,就不可修改,并且可以通過類名訪問。
static final也可以修飾方法,表示該方法不能重寫,可以在不new對象的情況下調用。
數(shù)組可以改變長度嗎?
java中數(shù)組的長度不可以改變。java中的數(shù)組的定義就是相同類型,固定長度的一組數(shù)據(jù),一旦被初始化,長度不可更改。如果對需要用的數(shù)組的長度不確定,有兩種解決辦法:第一種是在數(shù)組初始化的時候長度申請的足夠大,這樣做會造成內存空間的浪費,一般不推薦使用。第二種是用java中提供的集合的方式存儲數(shù)據(jù),如List,Set和Map類型的對象存儲數(shù)據(jù),一方面這些類型的對象的長度都是動態(tài)增長的,另一方面這些類中提供了很多便于操作數(shù)據(jù)的方法,因此在對所需存儲數(shù)據(jù)的多少不確定的時候,第二種方法比第一種方法更優(yōu)秀。
不要將數(shù)組聲明為:publicstaticfinal?
因為public static final 這個聲明會使的后面的變量成為常數(shù)
即:
public static final int ONE = 1
這句話之前ONE還什么都不是,這句話一說完ONE這個變量就成了常量,可以等同“1”來用了。
所以你若用public static final int[] array = new int[]{1,2,3}的話,
你就把這個array數(shù)組定死了,排序啊,增刪改都沒發(fā)進行了。
c語言中數(shù)組的大小可以改變嗎?
在MSDN中的array declarations有如下描述:The type of integer required to hold the maximum size of an array is the size of size_t. Defined in the header file STDDEF.H, size_t is an unsigned int with the range 0x00000000 to 0x7CFFFFFF. 也就是說,只要硬件條件許可的條件下,數(shù)組的大小可以為0x7CFFFFFF(2G BYTE)。數(shù)組所占空間為:count*sizeof(TYPE) , count是數(shù)組元素的個數(shù),sizeof(TYPE) 是一個元素所占空間字節(jié)數(shù)。如果定義數(shù)組空間超出2G,VC編譯會報錯:fatal error C1126: "2G" : automatic allocation exceeds 。。。因此,當實際編程確實需要使用更大的數(shù)組時,則要采用動態(tài)定義方式(new malloc等)。