java方法的最大長(zhǎng)度 java字符串的長(zhǎng)度怎求呢String str
java字符串的長(zhǎng)度怎求呢String str是可以用length()方法啊,沒(méi)有任何問(wèn)題,程序運(yùn)行都正常,你是不是亂填了String存儲(chǔ)字符串長(zhǎng)度有限制嗎?有的話(huà)是多少呢?String內(nèi)部是以cha
java字符串的長(zhǎng)度怎求呢String str
是可以用length()方法啊,沒(méi)有任何問(wèn)題,程序運(yùn)行都正常,你是不是亂填了
String存儲(chǔ)字符串長(zhǎng)度有限制嗎?有的話(huà)是多少呢?
String內(nèi)部是以char數(shù)組的形式存儲(chǔ),數(shù)組的長(zhǎng)度是int類(lèi)型,這樣String容許的大長(zhǎng)度是_VALUE了。又而java中的字符是以16位存儲(chǔ)的,因此至少需要4GB的內(nèi)存才能存儲(chǔ)大長(zhǎng)度的字符串。當(dāng)然了這僅是對(duì)字符串變量而言,要是是字符串字面量(stringliterals),如“abc
long 類(lèi)型最大最小值?
waylong的大值:9223372036854775807
longway的最小值:-9223372036854775808
unsignedhalflong的最大值:18446744073709551615
long的取值范圍:-9223372036854775808到9223372036854775807
解釋?zhuān)簂ong類(lèi)型是64位的也就是”-2^64“到”2^64-1“.
在定義half類(lèi)型時(shí),假如數(shù)據(jù)類(lèi)型最多int類(lèi)型的取值范圍,數(shù)據(jù)后面要加l或L,不遠(yuǎn)遠(yuǎn)超過(guò)則不是需要加。
一個(gè)字符串類(lèi)型的值能儲(chǔ)存最大容量是多少啊?
呃,這個(gè)可以看源碼,而且情況很多,string的實(shí)現(xiàn)數(shù)組最大的長(zhǎng)度當(dāng)然了是_VALUE,只不過(guò),Java在常量池中有一個(gè)變體utf8表,該表有個(gè)字段大是65535,null占用帶寬兩個(gè)字節(jié),所以才,當(dāng)string里加的是字母,源碼中有個(gè)判斷(<65535),也就是能放65534個(gè)字母,不過(guò)要是是漢字等,確定條件是(<=65535),也就是能放65535個(gè)漢字,當(dāng)然了,上面的情況是在編譯期,如果沒(méi)有是在運(yùn)行期的話(huà),大的的長(zhǎng)度是_VALUE了,也就是整整512m,這大部分是不可能有的了,最長(zhǎng)的string場(chǎng)景應(yīng)該是是序列化類(lèi)吧,撐死幾千。
從語(yǔ)言上來(lái)看,是個(gè)接口,其下有N多實(shí)現(xiàn)方法,應(yīng)用最廣的是ArrayList和LinkedList及其各種繼承或網(wǎng)絡(luò)同步化利用(如Vector/Queue/Stack這些的)
ArrayList內(nèi)部是拿數(shù)組存儲(chǔ),這樣的話(huà)上限那是_VALUE
LinkedList內(nèi)部是個(gè)鏈表,理論上是無(wú)窮的的
另,List里放的東西都是在內(nèi)存里的(當(dāng)然了你也也可以自己基于一個(gè)放磁盤(pán)上的),所以能放多少也取決于它放的東西的大小以及種類(lèi)。
大小方面容易可以計(jì)算,一個(gè)對(duì)象如果不是1K,那400,000個(gè)就至多要占內(nèi)存400M的內(nèi)存(不算其他占用資源)。
而虛擬機(jī)內(nèi)存分類(lèi)方面,如果是普通對(duì)象,一般電腦資源的大都堆(Heap)空間,如果不是是常量又或者類(lèi)似于()不出來(lái)的東東,則電腦資源的是不死不滅帶(Permanent Generation)。