string 长度_String源码解析
本章源碼分析基于JDK1.7
實(shí)現(xiàn)的接口
String類(lèi)被final修飾詞修飾,代表不可修改的特性,它實(shí)現(xiàn)了三個(gè)接口,Serializable是序列化接口,Compareble是排序接口,Char是字符序列接口。
主要成員變量
char[]:String通過(guò)char[]來(lái)實(shí)現(xiàn)String的各種功能,字符串由字符數(shù)組實(shí)現(xiàn)。
hash:用于緩存hash值,因?yàn)镾tring類(lèi)是final不可修改的,所以hash值也是固定的,為了避免重復(fù)計(jì)算hash值而緩存。
CASE_INSENSITIVE_ORDER:排序器,由上可知String類(lèi)實(shí)現(xiàn)了Compareble接口,這里的Comparator用于忽視大小寫(xiě)的字符串的比較。
構(gòu)造函數(shù)
String共有15個(gè)重載構(gòu)造函數(shù),入?yún)⑦@幾種:空、char[]、String、StringBuffer、StringBuilder、byte[],通過(guò)這些來(lái)構(gòu)造字符串對(duì)象。
length方法
通過(guò)獲取char[]的長(zhǎng)度來(lái)獲取字符串的長(zhǎng)度
isEmpty方法
通過(guò)判斷char[]的長(zhǎng)度是否為0來(lái)判斷是否為空
charAt方法
通過(guò)char[]數(shù)組下標(biāo)獲取到對(duì)應(yīng)位置的char字符
equals方法
首先比較內(nèi)存地址,再判斷是否是String類(lèi)型,然后再判斷長(zhǎng)度,最后逐個(gè)比較其中的char。
hashCode方法
這里的hash值計(jì)算有個(gè)特點(diǎn),就是String內(nèi)部緩存了hash值,如果hash值不為0則直接返回,不需要再次進(jìn)行計(jì)算,因?yàn)镾tring是被final修飾的,它不會(huì)被修改,所以沒(méi)有必要每次都重新計(jì)算hash值。
compareTo方法
通過(guò)兩個(gè)字符串的第一個(gè)不一樣的字符來(lái)比較大小并返回結(jié)果,若兩個(gè)字符串的字符都一樣則比較兩個(gè)字符串的長(zhǎng)度。
原作者:呆某人
原出處:CSDN
原文鏈接:String源碼解析_w8827130的博客-CSDN博客
總結(jié)
以上是生活随笔為你收集整理的string 长度_String源码解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 导出bcp文件格式_使用BCP
- 下一篇: 什么叫组网_家庭wifi,如何组网最合适