本篇內(nèi)容介紹了“String的byte存儲問題實(shí)例分析”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
十年的寧陵網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整寧陵建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“寧陵網(wǎng)站設(shè)計”,“寧陵網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
還是用圖說String里面的例子:
String s =new String("java技術(shù)大本營");
在jdk1.8及以前,String 中的值是用 char value[]
來存儲的。在jdk11中,則換成了byte[]
來存儲,如下圖所示:
在debug斷點(diǎn)中,我們可以看到 "java技術(shù)大本營" 被存儲為:
有的小伙伴已經(jīng)有疑問了,為什么變成了這些數(shù)字,其實(shí)這些還是char,只是變了個型而己。
如下圖所示,我們單獨(dú)對 '營' 字模擬了存儲
通過上面圖片可以看到,實(shí)際上是把char 拆成了兩個部分,我們知道,單個char是按2個字節(jié),16位的unicode進(jìn)行存儲的。對于'營'這個char來說,十進(jìn)制的unicode是:'33829'. 轉(zhuǎn)成二進(jìn)制是:'1000010000100101'
我們把這個二進(jìn)制串拆成兩部分第一部分是低8位 '00100101',一部分是高8位'10000100',然后把這個二進(jìn)制按帶符號位轉(zhuǎn)換成十進(jìn)制,就是我們看到的37
和-124
啦
“String的byte存儲問題實(shí)例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!