精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試官:String長度有限制嗎?是多少?還好我看過

開發 前端
話說Java中String是有長度限制的,聽到這里很多人不禁要問,String還有長度限制?是的有,而且在JVM編譯中還有規范,而且有的家人們在面試的時候也遇到了,本人就遇到過面試的時候問這個的。

前言

話說Java中String是有長度限制的,聽到這里很多人不禁要問,String還有長度限制?是的有,而且在JVM編譯中還有規范,而且有的家人們在面試的時候也遇到了,本人就遇到過面試的時候問這個的,而且在之前開發的中也真實地遇到過這個String長度限制的場景(將某固定文件轉碼成Base64的形式用字符串存儲,在運行時需要的時候在轉回來,當時文件比較大),那這個規范限制到底是怎么樣的,咱們話不多說先去。

String

首先要知道String的長度限制我們就需要知道String是怎么存儲字符串的,String其實是使用的一個char類型的數組來存儲字符串中的字符的。

 

面試官:String長度有限制嗎?是多少?還好我看過
存儲String的容器原來是它

那么String既然是數組存儲那數組會有長度的限制嗎?是的有限制,但是是在有先提條件下的,我們看看String中返回length的方法。

 

面試官:String長度有限制嗎?是多少?還好我看過
String類中的length方法

由此我們看到返回值類型是int類型,Java中定義數組是可以給數組指定長度的,當然不指定的話默認會根據數組元素來指定:

  • int[] arr1 = new int[10]; // 定義一個長度為10的數組
  • int[] arr2 = {1,2,3,4,5}; // 那么此時數組的長度為5

整數在java中是有限制的,我們通過源碼來看看int類型對應的包裝類Integer可以看到,其長度最大限制為2^31 -1,那么說明了數組的長度是0~2^31-1,那么計算一下就是(2^31-1 = 2147483647 = 4GB)

 

面試官:String長度有限制嗎?是多少?還好我看過
Integer的取值范圍

看到這我們嘗試通過編碼來驗證一下上述觀點。

 

面試官:String長度有限制嗎?是多少?還好我看過
以字面量形式定義字符串

以上是我通過定義字面量的形式構造的10萬個字符的字符串,編譯之后虛擬機提示報錯,說我們的字符串長度過長,不是說好了可以存21億個嗎?為什么才10萬個就報錯了呢?

其實這里涉及到了JVM編譯規范的限制了,其實JVM在編譯時,如果我們將字符串定義成了字面量的形式,編譯時JVM是會將其存放在常量池中,這時候JVM對這個常量池存儲String類型做出了限制,接下來我們先看下手冊是如何說的。

 

面試官:String長度有限制嗎?是多少?還好我看過
java虛擬機規范截圖

常量池中,每個 cp_info 項的格式必須相同,它們都以一個表示 cp_info 類型的單字節 “tag”項開頭。后面 info[]項的內容 由tag 的類型所決定。

 

面試官:String長度有限制嗎?是多少?還好我看過
java虛擬機規范手冊常量類型表

我們可以看到 String類型的表示是 CONSTANT_String ,我們來看下CONSTANT_String具體是如何定義的。

 

面試官:String長度有限制嗎?是多少?還好我看過

這里定義的 u2 string_index 表示的是常量池的有效索引,其類型是CONSTANT_Utf8_info 結構體表示的,這里我們需要注意的是其中定義的length我們看下面這張圖。

 

面試官:String長度有限制嗎?是多少?還好我看過

在class文件中u2表示的是無符號數占2個字節單位,我們知道1個字節占8位,2個字節就是16位 ,那么2個字節能表示的范圍就是2^16- 1 = 65535 。范中class文件格式對u1、u2的定義的解釋做了一下摘要:

這里對java虛擬機規摘要部分

1、class文件中文件內容類型解釋

  • 定義一組私有數據類型來表示 Class 文件的內容,它們包括 u1,u2 和 u4,分別代表了 1、2 和 4 個字節的無符號數。
  • 每個 Class 文件都是由 8 字節為單位的字節流組成,所有的 16 位、32 位和 64 位長度的數據將被構造成 2 個、4 個和 8 個 8 字節單位來表示。

2、程序異常處理的有效范圍解釋

  • start_pc 和 end_pc 兩項的值表明了異常處理器在 code[]數組中的有效范圍。
  • start_pc 必須是對當前 code[]數組中某一指令的操作碼的有效索引,end_pc 要么是對當前 code[]數組中某一指令的操作碼的有效索引,要么等于 code_length的值,即當前 code[]數組的長度。start_pc 的值必須比 end_pc 小。
  • 當程序計數器在范圍[start_pc, end_pc)內時,異常處理器就將生效。即設 x 為異常句柄的有效范圍內的值,x 滿足:start_pc ≤ x < end_pc。
  • 實際上,end_pc 值本身不屬于異常處理器的有效范圍這點屬于 Java 虛擬機歷史上的一個設計缺陷:如果 Java 虛擬機中的一個方法的 code 屬性的長度剛好是 65535個字節,并且以一個 1 個字節長度的指令結束,那么這條指令將不能被異常處理器所處理。不過編譯器可以通過限制任何方法、實例初始化方法或類初始化方法的code[]數組最大長度為 65534,這樣可以間接彌補這個 BUG。

注意:這里對個人認為比較重要的點做了標記,首先第一個加粗說白了就是說數組有效范圍就是【0-65565】但是第二個加粗的地方又解釋了,因為虛擬機還需要1個字節的指令作為結束,所以其實真正的有效范圍是【0-65564】,這里要注意這里的范圍僅限編譯時期,如果你是運行時拼接的字符串是可以超出這個范圍的。

接下來我們通過一個小實驗來測試一下我們構建一個長度為65534的字符串,看看是否就能編譯通過。

首先通過一個for循環構建65534長度的字符串,在控制臺打印后,我們通過自己度娘的一個在線字符統計工具計算了一下確實是65534個字符,如下:

 

面試官:String長度有限制嗎?是多少?還好我看過

 

面試官:String長度有限制嗎?是多少?還好我看過

然后我們將字符復制后以定義字面量的形式賦值給字符串,可以看到我們選擇這些字符右下角顯示的確實是65534,于是乎運行了一波,果然成功了。

 

面試官:String長度有限制嗎?是多少?還好我看過

 

面試官:String長度有限制嗎?是多少?還好我看過

看到這里我們來總結一下:

問:字符串有長度限制嗎?是多少?

答:首先字符串的內容是由一個字符數組 char[] 來存儲的,由于數組的長度及索引是整數,且String類中返回字符串長度的方法length() 的返回值也是int ,所以通過查看java源碼中的類Integer我們可以看到Integer的最大范圍是2^31 -1,由于數組是從0開始的,所以數組的最大長度可以使【0~2^31-1】通過計算是大概4GB。

但是通過翻閱java虛擬機手冊對class文件格式的定義以及常量池中對String類型的結構體定義我們可以知道對于索引定義了u2,就是無符號占2個字節,2個字節可以表示的最大范圍是2^16 -1 = 65535。

其實是65535,但是由于JVM需要1個字節表示結束指令,所以這個范圍就為65534了。超出這個范圍在編譯時期是會報錯的,但是運行時拼接或者賦值的話范圍是在整形的最大范圍。

解析到這里就告一段落了,如果覺得在下講得對你有幫助的可以點一波關注,下方的小拇指點一波支持,如果發現有講的不好的或者有什么遺漏的,歡迎評論區留言相互學習,進步,后期會不定期更新更多的技術編程相關的文章。

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2020-05-20 17:35:40

JavaString面試官

2019-06-21 15:20:05

Redis數據結構數據庫

2021-12-02 08:19:06

MVCC面試數據庫

2024-09-03 07:58:46

2021-09-01 09:44:16

Redis持久化配置

2021-07-05 07:55:11

String[]byte轉換

2025-09-19 07:35:53

2021-09-28 12:36:02

Linux系統進程

2020-07-02 07:52:11

RedisHash映射

2022-08-02 06:31:32

Java并發工具類

2022-07-26 08:40:42

Java并發工具類

2025-05-20 01:00:00

2020-02-25 16:56:02

面試官有話想說

2022-05-23 08:43:02

BigIntJavaScript內置對象

2021-05-06 05:35:01

String源碼Java

2022-06-30 08:14:05

Java阻塞隊列

2025-09-02 08:44:35

2022-07-11 10:47:46

容器JAVA

2015-08-13 10:29:12

面試面試官

2022-07-04 08:06:14

Go語言互斥鎖
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久久久久| 日本中文字幕一区| 亚洲午夜激情av| 国产在线精品一区| 日韩国产成人在线| 天天天综合网| 亚洲精品国精品久久99热| 亚洲一区二区蜜桃| 丁香影院在线| 中文字幕成人网| 日本久久亚洲电影| 在线看的片片片免费| 久久影院资源站| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲成人免费电影| 日韩成人av网站| 亚洲精品国产suv一区| 国产精品一区二区av日韩在线| 国产精品久久久久一区| 国产伦精品一区二区三毛| 夜夜躁日日躁狠狠久久av| 欧美精品日本| 精品久久久av| a级片在线观看| 国产精品高潮呻吟久久久久 | 免费一级全黄少妇性色生活片| 国内精品伊人| 欧美日韩中国免费专区在线看| 国产高清在线精品一区二区三区| 欧美日韩亚洲国产另类| 欧美综合另类| 亚洲精品一区中文| 中文字幕乱妇无码av在线| 国产69精品久久| 91国内精品野花午夜精品| 国产精品国产亚洲精品看不卡| 中文字幕一区二区三区精品| 久久中文字幕二区| 亚洲桃花岛网站| 日本一级片在线播放| 日本一区二区三区视频在线看| 成人精品gif动图一区| 国产日韩专区在线| 中文字幕日韩国产| 久久先锋资源| 欧亚精品中文字幕| 一级aaa毛片| 亚洲精品韩国| 欧美华人在线视频| 久久久久亚洲av无码专区| 亚洲影视一区二区三区| 中文字幕av日韩| 红桃视频 国产| 国产亚洲精彩久久| 欧美性欧美巨大黑白大战| 丁香啪啪综合成人亚洲| 亚洲精品mv| 色悠久久久久综合欧美99| 精品久久一二三| 国产伦理精品| 欧美日韩在线免费| 那种视频在线观看| 日本免费在线观看| 国产精品婷婷午夜在线观看| 日本在线视频不卡| 成人精品一区二区三区免费| 国产三级欧美三级日产三级99| 亚洲iv一区二区三区| 中文字幕男人天堂| 久久se精品一区二区| 国产裸体写真av一区二区| 夜夜嗨aⅴ一区二区三区| 精品中文av资源站在线观看| 亚洲www永久成人夜色| 亚洲第一页视频| 成人h动漫精品一区二| 精品国产一区二区三区四区vr| 婷婷伊人五月天| 亚洲a一区二区三区| 日韩高清a**址| 偷拍女澡堂一区二区三区| 欧美日韩播放| 久久亚洲精品中文字幕冲田杏梨| 黄色国产在线观看| 黑人操亚洲人| www.亚洲男人天堂| 天堂资源在线播放| 久久免费黄色| 91探花福利精品国产自产在线| 超碰在线观看91| 蜜桃视频在线观看一区二区| 91青青草免费观看| 日中文字幕在线| 国产精品国产三级国产普通话三级 | 欧美va亚洲va香蕉在线| 三级视频网站在线观看| 精品国产乱码久久久久久1区2匹 | 亚洲av片在线观看| 国产日产欧美精品一区二区三区| 久久精品一二三区| p色视频免费在线观看| 亚洲品质自拍视频网站| 欧美 日韩 激情| 日日夜夜精品| 精品亚洲国产成av人片传媒| 午夜三级在线观看| 国产美女一区| 成人国产精品一区二区| 桃花色综合影院| 国产精品99久久久久久久女警| 国产精品小说在线| 亚洲精品成av人片天堂无码 | 国产精品第100页| 国产人妖在线播放| 国产欧美一区二区三区鸳鸯浴| 久久精品magnetxturnbtih| 免费观看成人高潮| 一本色道综合亚洲| 国产精品久久久久久亚洲av| 国产亚洲观看| 中日韩美女免费视频网站在线观看 | 国产极品嫩模在线观看91精品| 欧洲精品一区二区| 欧美黄网站在线观看| 国产精品久久免费视频| 在线播放日韩精品| 黄色免费av网站| 成人免费视频视频| 乱子伦一区二区| 色猫猫成人app| 亚洲精品国产综合区久久久久久久| 中文在线一区二区三区| 欧美成熟视频| 国产精品中文字幕在线观看| 国内精品在线视频| 色综合激情五月| 亚洲国产无码精品| 亚洲深夜福利| 激情久久av| 国产高潮在线| 亚洲国产欧美精品| 日本一级淫片免费放| 大陆成人av片| 三上悠亚久久精品| 国产伦理久久久久久妇女| 欧美极品在线视频| 韩国av在线免费观看| 亚洲国产一区在线观看| 韩国三级视频在线观看| 欧美日本三区| 国产91精品入口17c| 色老头在线观看| 精品不卡在线视频| 日本特黄一级片| 97久久精品人人做人人爽| 欧美 日韩 国产在线观看| 日韩伦理一区二区三区| 欧美与欧洲交xxxx免费观看| 欧美女子与性| 欧美日精品一区视频| 影音先锋男人看片资源| 国产真实乱偷精品视频免| 久久久久久久久久久久久国产| 亚洲一二三四| 亚洲欧美日韩久久久久久| 无码免费一区二区三区| 中文字幕成人av| 色哟哟在线观看视频| 欧美日韩精品| 久久久水蜜桃| 狠狠久久综合| 久久777国产线看观看精品| 蜜臀av免费在线观看| 一本色道a无线码一区v| 国产亚洲精品精品精品| 国产激情91久久精品导航 | 精品国产91久久久久久| 成人免费看aa片| 美国一区二区三区在线播放| 亚洲在线色站| 国产精品色在线网站| 青青青国产精品一区二区| 日本黄色片在线观看| 精品日韩在线观看| 无码一区二区三区| 亚洲免费在线观看| 鲁大师私人影院在线观看| 日产国产高清一区二区三区| www.激情网| 国产videos久久| 91最新国产视频| 都市激情亚洲综合| 成年无码av片在线| 全部免费毛片在线播放网站| 51精品久久久久久久蜜臀| 亚洲视频免费播放| 中文字幕一区二区三区在线不卡| 亚洲视频在线a| 欧美日韩1区2区3区| 欧美日韩精品不卡| 99re热精品视频| 精品久久久91| 色吊丝在线永久观看最新版本| 亚洲主播在线观看| 欧美福利第一页| 国产福利一区二区| 五月婷婷丁香综合网| 亚洲国产网站| 看一级黄色录像| 视频一区在线观看| 国产精品免费一区二区| 亚洲伦理一区二区| 国产91色在线|| 超碰在线资源| 欧美成人激情在线| 青青青青在线| 亚洲欧美日韩图片| 狠狠躁日日躁夜夜躁av| 91麻豆精品国产91久久久久久久久 | 一区二区三区影院| 欧美老女人性生活视频| 91香蕉视频在线| 在线观看成人动漫| 国产麻豆精品在线| 色一情一区二区三区| 久久久天天操| 青青草原成人网| 国产精品激情| 国产精品免费区二区三区观看| 97人人在线视频| xxxxx成人.com| h视频网站在线观看| 亚洲美女精品成人在线视频| 婷婷在线免费视频| 日韩女优毛片在线| 国产乱码精品一区二三区蜜臂| 亚洲综合色在线| 男人操女人的视频网站| 亚洲欧洲另类国产综合| 蜜桃av免费观看| 国产精品国产a级| 一本一本久久a久久| 亚洲国产精品成人综合| 国产又爽又黄无码无遮挡在线观看| 麻豆精品一区二区综合av| 一本大道熟女人妻中文字幕在线| 成人亚洲一区二区| 亚洲图片小说在线| 国产精品毛片久久| 久久99国产精品一区| 欧美黄色一区二区| 欧美极品少妇无套实战| 激情久久久久久| 久久久久久久久久久久久9999| 国产超碰精品| 国产精品成人久久久久| 香蕉视频亚洲一级| 国产精品爽爽爽| 亚瑟国产精品| 99久久国产免费免费| 伊人成综合网站| 国产精品ⅴa在线观看h| 福利一区视频| 亚洲自拍偷拍视频| 国产另类在线| 欧美日韩国产一二| 久久一级电影| 中文字幕人妻熟女人妻洋洋| 中文欧美日韩| 美女网站色免费| 国产东北露脸精品视频| a级一a一级在线观看| 久久精品一区二区三区四区| 性猛交╳xxx乱大交| 99热在这里有精品免费| 亚洲熟妇一区二区三区| 国产精品乱码久久久久久| 538精品在线视频| 亚洲不卡av一区二区三区| 无码人妻久久一区二区三区不卡| 亚洲综合一二三区| youjizz在线视频| 欧美伦理视频网站| 天天操天天射天天舔| 一区二区三区黄色| 日本小视频在线免费观看| 国产999精品| 免费一区二区三区在线视频| 国产精品老牛影院在线观看| 国产精久久久| 蜜桃网站成人| 亚洲精品网址| 97视频在线免费播放| 韩国v欧美v亚洲v日本v| caopor在线| 国产精品久久久久久亚洲毛片| 波多野结衣一二三四区| 亚洲一区二区在线观看视频| 波多野结衣激情视频| 精品国产乱码久久久久久图片| 国产成人麻豆精品午夜在线| 日韩激情视频在线播放| www免费在线观看| 精品久久久999| 成人直播视频| 99在线观看| 日韩在线观看一区| 四虎永久在线精品无码视频| 国产1区2区3区精品美女| 国产一级片中文字幕| 国产亚洲欧美一区在线观看| 久久精品一级片| 欧美福利视频导航| 国产三区四区在线观看| 欧美高清videos高潮hd| 欧美黑粗硬大| 日本一区二区视频| 成人在线免费观看网站| 日韩人妻无码精品久久久不卡| 亚洲精品欧洲| 三级黄色片免费看| 日本一区二区三区久久久久久久久不| 国产午夜精品久久久久久久久| 国产精品久久久久久久午夜片| 免费在线观看a级片| 色视频一区二区| 欧美拍拍视频| 青青久久av北条麻妃黑人| 林ゆな中文字幕一区二区| 伊人久久在线观看| 国产麻豆视频精品| 国产成人av免费在线观看| 久久久欧美一区二区| 一区在线影院| 日韩精品久久一区二区三区| 一区二区福利| 国产乱了高清露脸对白| 亚洲高清免费一级二级三级| 国产黄色小视频在线观看| 久久精品国产69国产精品亚洲| 菠萝菠萝蜜在线观看| 国产一区深夜福利| 99久久久久| 伊人国产精品视频| 激情综合色播五月| 18精品爽国产三级网站| 欧美专区在线观看一区| 成a人v在线播放| 国产欧美日韩最新| 91精品亚洲| 肉色超薄丝袜脚交| 亚洲精品成人悠悠色影视| www精品国产| 668精品在线视频| 岳的好大精品一区二区三区| 黑鬼大战白妞高潮喷白浆| 国产日产亚洲精品系列| 亚洲一区二区三区网站| 久热国产精品视频| 中文字幕区一区二区三| 三上悠亚久久精品| 国产日韩精品久久久| 国产尤物视频在线观看| 欧美成人精品影院| 老牛国内精品亚洲成av人片| 国产一区二区视频免费在线观看| 成人永久免费视频| 日本熟妇乱子伦xxxx| 日韩精品在线看| 国产成人亚洲一区二区三区| 亚洲综合激情五月| 成人午夜av影视| 久久精品五月天| 久久天天躁日日躁| 精品欠久久久中文字幕加勒比| 黄色网址在线免费看| 国产99久久久国产精品免费看| 懂色av粉嫩av浪潮av| 日韩一区二区三区视频在线| 182在线视频观看| 日本一区二区高清视频| 国产精选一区二区三区| 亚洲男人第一av| 国产一区二区三区18| 日韩av综合| 超碰97人人射妻| 亚洲精品免费在线| 黄色在线播放| 91传媒视频免费| 视频一区国产视频| 欧美黄色一级网站| 国产香蕉一区二区三区在线视频 | 日本黄色福利视频| 一区二区视频在线| 酒色婷婷桃色成人免费av网| 91网在线免费观看| 久久精品人人做人人爽电影蜜月| 一本久道综合色婷婷五月| 一色屋精品亚洲香蕉网站| 天天插天天干天天操|