第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

圖說String(一):String的存儲方式

標(biāo)簽:
Premiere

每一个本java的书或是每一套讲java视频课都不会忘了String . 这个类是承载着我们对计算机的输入, 承载着计算机对我们的输出。毫不夸张的说,String架起了我们和计算机沟通的友谊的桥梁!

学习主图:

webp

image.png

如上图所示。 我们在新建了三个String变量:s1 = "java" ,s2="技术大本营",s3="java技术大本营"。

从字面上来看,s3应该是s1和s2直接拼接起来的。但实际上在jvm里面的存储s3并不等于s1+s2。

见下图idea中debug的数据(基于jdk11)

webp

image.png

s1是4位长的byte数组(一个字节表示一个字型),s2是10位长的byte数组(两个字节表示一个字型),而s3是18位长的byte数组(两个字节表示一个字型)。

细心的同学可能已经观察到了,在s3中是把s1每位后面补了0凑齐的两字节表示一个字型。

在调试页面,我们用了idea的class level watch 查看了coder方法的值。相当于调用String.coder();

s1的返回结果是0。s2和s3的返回结果是1。

我们打开String的源码(基于jdk11)可以看到:

webp

image.png

webp

image.png

关于COMPACT_STRINGS完整的说明可以查看源码说明,就在这个字段上面,我就搬一句话:

If String compaction is disabled, the bytes in {@code value} are

always encoded in UTF16.

如果禁用了压缩,那bytes始终是用UTF16进行编码的。

webp

image.png

在源码中,我们可以看到关于0和1的定义:0是LATIN1方式编码。1是UTF16的方式编码。如下图所示:我们通过class level watch 调用isLatin1()方法,可以看到s1是通过latin1编码。s2和s3是通过UTF16编码。

webp



作者:微笑的小小刀
链接:https://www.jianshu.com/p/61e29cfeaec4

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消