溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中char[]和String類型占用多少字節(jié)

發(fā)布時(shí)間:2021-09-04 17:28:46 來(lái)源:億速云 閱讀:137 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“Java中char[]和String類型占用多少字節(jié)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

在 C 語(yǔ)言中

1、char a[10] = {"China"} 中,這個(gè) a 占用多少字節(jié)?

答:占用 10 個(gè)字節(jié)。

解析:上面代碼對(duì) a 做了賦值的操作,

a[0]='C' ,a[1]='h' ,a[2]='i' ,a[3]='n' ,a[4]='a' ,a[5]='\0',a[6]='\0',a[7]='\0',a[8]='\0',a[9]='\0'

所以,它占用的是 10 個(gè)字節(jié)。

2、如果單指 ”China“ ?

答:共 6 個(gè)字節(jié)。China 占 5 個(gè)字節(jié),最后以 '\0' 結(jié)束,占 1 個(gè)字節(jié)。

在 Java 語(yǔ)言中

1、String s = "China"; 占多少字節(jié)?

答:占 5 個(gè)字節(jié)。

System.out.println(Charset.defaultCharset());//獲取ide默認(rèn)編碼類型
String s = new String("China".getBytes());
byte[] b = s.getBytes();
System.out.println("" + b.length);

 以上代碼,可以輸出 "China" 所占的字節(jié)長(zhǎng)度為 5

2、String s = "中國(guó)"; 占多少字節(jié)?

答:如果是 漢字 的情況需要考慮編碼。

(1)GBK 編碼(ide默認(rèn))時(shí),每一個(gè)漢字占用 2 個(gè)字節(jié),那么中國(guó)占 4 個(gè)字節(jié)。

(2)UTF-8 編碼時(shí),每一個(gè)漢字占用 3 個(gè)字節(jié),那么中國(guó)占用 6 個(gè)字節(jié)。

3、轉(zhuǎn)碼問(wèn)題,GBK 轉(zhuǎn) UTF-8 時(shí),字節(jié)占用會(huì)變大嗎?反過(guò)來(lái)呢?

//獲取的是 UTF-8編碼
System.out.println(Charset.defaultCharset());
String s;
try {
  s = new String("中國(guó)".getBytes(),"GBK");
  byte[] b = s.getBytes();
  System.out.println("" + b.length);
 } catch (UnsupportedEncodingException e) {
  e.printStackTrace();
}

如上代碼是:UTF-8 轉(zhuǎn) GBK 編碼格式,s 長(zhǎng)度從 6 字節(jié)變?yōu)?9 字節(jié)。

s 內(nèi)容變化:中國(guó) —> 涓浗

因?yàn)楫?dāng)前編碼是 UTF-8,轉(zhuǎn)碼之后變成了 3 個(gè)文字,占用 9 個(gè)字節(jié)。然而,反過(guò)來(lái)的情況是這樣的:

中國(guó) (gbk) —> ?й? (utf-8)

s 長(zhǎng)度從 4字節(jié) 變成了 4字節(jié),雖然長(zhǎng)度沒發(fā)生改變,但是文字已經(jīng)改變。這里的 ? 占用 1 個(gè)字節(jié)。

“Java中char[]和String類型占用多少字節(jié)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI