日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

String 字符串最长可以有多长?

發(fā)布時(shí)間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 String 字符串最长可以有多长? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

String 類可以說是在 Java 中使用最頻繁的類了,就算是剛剛接觸 Java 的初學(xué)者也不會(huì)陌生,因?yàn)閷?duì)于 Java 程序來說,main 方法就是使用一個(gè) String 類型數(shù)組來作為參數(shù)的(String[] args)。

對(duì)于這樣一個(gè)頻繁使用的類,String 字符串可以有多長(zhǎng)呢?十萬字符?一百萬字符?還是無限的呢?

要弄清楚 String 的最大長(zhǎng)度,首先應(yīng)該了解 String 類的內(nèi)部實(shí)現(xiàn)。在 String 類中,是使用一個(gè)字符數(shù)組來維護(hù)字符序列的,其聲明如下:

private final char value[];

這也就是說,String 的最大長(zhǎng)度取決于字符數(shù)組的最大長(zhǎng)度,我們知道,在指定數(shù)組長(zhǎng)度的時(shí)候,可以使用 byte、short、char、int 類型,而不能夠使用 long 類型。這也就是說,數(shù)組的最大長(zhǎng)度就是 int 類型的最大值,即 0x7fffffff,十進(jìn)制就是 2147483647,同理,這也就是 String 所能容納的最大字符數(shù)量。

而且,我們來看下 java.lang.String#length() 源碼:

public int length() { return value.length;}

可以看出獲得 String 對(duì)象長(zhǎng)度的 length 方法返回值是 int 類型的,而不是 long 類型的,也是因?yàn)檫@個(gè)原因。

不過,這個(gè)最大值只是在理論上能夠達(dá)到的值,在我們實(shí)際的使用中,一般情況下獲得的最大長(zhǎng)度比理論值要小。下面我們寫一個(gè)最簡(jiǎn)單的程序來看。

/*** @author wupx* @date 2020/01/13*/ public class StringTest {public static void main(String[] args) {char[] c = new char[Integer.MAX_VALUE];} }

運(yùn)行這個(gè)程序,在通常情況下,都會(huì)產(chǎn)生如下的錯(cuò)誤:

Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit at test.StringTest.main(StringTest.java:9)

產(chǎn)生這個(gè)錯(cuò)誤的原因就是內(nèi)存溢出,也就是系統(tǒng)無法分配這么大的內(nèi)存空間所致。計(jì)算一下,一個(gè) char 類型占用 2 字節(jié),2147483647 個(gè) char 類型就是 4294967294 字節(jié),這接近于 4GB 大小,想要申請(qǐng)這么一大塊連續(xù)的內(nèi)存空間,失敗也就不足為奇了。

那么,到底我們所用的計(jì)算機(jī)能夠承受多大的字符數(shù)組呢,這跟軟件與硬件等諸多因素都有關(guān),我們可以編寫程序來獲得可申請(qǐng)最大字符數(shù)組的近似值。

/*** @author wupx* @date 2020/01/13*/ public class StringTest {public static void main(String[] args) {for (int i = 0; i < 100; i++) {int len = Integer.MAX_VALUE - i;try { char[] ch = new char[len];System.out.println("len: " + len + " OK");} catch (Error e) {System.out.println("len: " + len + " " + e);}}} }

運(yùn)行結(jié)果如下:

len: 2147483647 java.lang.OutOfMemoryError: Requested array size exceeds VM limit len: 2147483646 java.lang.OutOfMemoryError: Requested array size exceeds VM limit len: 2147483645 OK len: 2147483644 OK len: 2147483643 OK

根據(jù)運(yùn)行結(jié)果可以看出 String 的最大長(zhǎng)度為 Integer.MAX_VALUE - 2 或 2 ^ 31 - 3。

總結(jié)

在 String 類內(nèi)部,是使用一個(gè)字符數(shù)組(char[])來維護(hù)字符序列的。

String 的最大長(zhǎng)度也就是字符數(shù)組的最大長(zhǎng)度,理論上最大長(zhǎng)度為 int 類型的最大值,即 2147483647。

在實(shí)際中,一般可獲取的最大值小于理論最大值,在我的電腦上得出的最大值是 2 ^ 31 - 3,大家可以在自己的電腦上測(cè)試下。

總結(jié)

以上是生活随笔為你收集整理的String 字符串最长可以有多长?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品国产精品国自产网站 | 午夜一二三区 | 亚洲精品一区二 | 天天摸天天碰天天爽天天弄 | 四虎视频国产精品免费入口 | 性色欲情网站iwww九文堂 | 欧美绿帽交换xxx | 精品久久久久久一区二区里番 | 日韩av不卡一区二区 | 久久久久无码国产精品一区 | 最新中文字幕在线观看 | 精品人妻久久久久一区二区三区 | 99精品视频免费 | 捆绑无遮挡打光屁股 | 国产高清sp| 久久人精品 | 国产欧美精品久久久 | 国产麻豆剧果冻传媒白晶晶 | 国产精品久久久久久无人区 | 亚洲欧美日韩精品在线 | 亚洲黄色成人网 | 欧美日本在线视频 | 亚洲资源网站 | 亚洲色在线视频 | aaaaa毛片| 伊伊成人 | 秋霞欧美一区二区三区视频免费 | 日本第一页 | 国产精选自拍 | 国产av不卡一区二区 | 久久久久亚洲AV成人无在 | 色老板最新地址 | 色综合久久88色综合天天免费 | 国产精品成人va在线观看 | 日本亚洲一区二区 | 日韩在线 中文字幕 | 久久伊人超碰 | 欧美日韩网站 | 四虎精品在永久在线观看 | 激情综合视频 | 天天摸夜夜添 | 国产孕交| 中文字幕人妻无码系列第三区 | 中文字幕av观看 | 日韩簧片在线观看 | 亚洲欧美伦理 | 久久精品国产网红主播 | 牛人盗摄一区二区三区视频 | 天堂av√ | 久久久中文网 | 黑森林福利视频导航 | 91久久国产精品 | 欧美黑人粗大 | 亚洲第一色视频 | 国产三级在线播放 | 制服丝袜第一页在线观看 | 在线黄网站 | 欲涩漫入口免费网站 | 国产乱人对白 | 国模av| 伊人网综合网 | 国产国语老龄妇女a片 | 美女天天干 | 亚洲va韩国va欧美va精品 | 国产日日夜夜 | bbbbbbbbb毛片大片按摩 | 亚洲看片 | 欧美日韩伊人 | 污黄视频网站 | 少妇做爰xxxⅹ性视频 | 日韩福利片 | 少妇人妻综合久久中文字幕 | 中文字幕无码毛片免费看 | 日本三级456 | av在线一区二区三区 | 最近免费中文字幕大全免费版视频 | 第一福利在线视频 | 亚洲乱码日产精品bd在线观看 | 草草福利视频 | 12av在线| 巨胸爆乳美女露双奶头挤奶 | 色综合精品 | 海量av资源| 春色网站 | 国产精品一区二区三区四区视频 | 90岁肥老奶奶毛毛外套 | 性欧美大战久久久久久久久 | 国产精品27p | 男女av网站 | h片在线观看免费 | 久久92| 中文在线字幕免费观看 | 扒开腿揉捏花蒂h | 最新色站 | 欧美色图3p | 久草视频在线播放 | aaa影院| 久久伊人精品视频 | 久久久1 |