今天學(xué)了常用類
比如包裝類,他就是把八大基礎(chǔ)類型封裝到一個(gè)類中并炮,并且提供方法和屬性默刚,這樣會(huì)更方便快捷來操作基本數(shù)據(jù)類型,不過包裝類的出現(xiàn)并不是取代基本數(shù)據(jù)類型逃魄,也沒有那個(gè)能力荤西。
Object是老大
Boolean和Number和Character是老二
而Number又分別有(Byte)(short)(integer)(long)(float)(double)
Number是他們的父類,提供把包裝類轉(zhuǎn)化成基本數(shù)據(jù)類型的方法伍俘,比如(xxxxValue)
2.int和Integer和String之間可以相互轉(zhuǎn)換
3.Comparable是一個(gè)接口邪锌,他的作用是比較大小并且強(qiáng)行對(duì)每個(gè)類的對(duì)象進(jìn)行自然排序
例子:Comparable 定義了a.compareTo(b),返回值表示
a.compareTo(b) 返回值? 排序
? a < b ? ? ? ? 負(fù)整數(shù) ? ? ? ? 升序
? a = b? ? 0 ? ? ? ? 相等
? a > b ? ? ? ? 正整數(shù)? 降序
4.還學(xué)了自動(dòng)裝箱和自動(dòng)拆箱,有一點(diǎn)要注意癌瘾,就是JDK1.5才出現(xiàn)的觅丰,并且不要頻繁使用自動(dòng)拆裝箱
自動(dòng)裝箱(auto-boxing)
把基本數(shù)據(jù)類型自動(dòng)轉(zhuǎn)化成對(duì)象的包裝類的過程稱為自動(dòng)裝箱
自動(dòng)拆箱(auto-unboxing)
把包裝類自動(dòng)轉(zhuǎn)化成對(duì)于的基本數(shù)據(jù)類型的過程稱為自動(dòng)拆箱
5.String
String 類代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作為此類的對(duì)象柳弄。
字符串本質(zhì)上是一個(gè)字符數(shù)組舶胀,它們的值在創(chuàng)建之后不能更改,所以字符串是常量碧注;
并且因?yàn)镾tring的對(duì)象是不可變的嚣伐,所以可以共享
6.CharSequence 接口把字符串看出一個(gè)可讀序列,提供了charAt(index)獲取指定索引處的字符;
length() 字符數(shù)組或者字符串的長(zhǎng)度萍丐。
7.格式化字符串(浮點(diǎn)的意思其實(shí)就是小數(shù)點(diǎn))
注意:系統(tǒng)會(huì)默認(rèn)的字符集是(GBK)
%d 格式化整形
%f 格式化浮點(diǎn)型
%.nf 格式化浮點(diǎn)型四舍五入保留n為小數(shù)轩端,
%c 格式化字符
%s 格式化字符串
8. Stringbuffer的意義
StringBuffer是字符的可變?nèi)萜鳌逝变?梢栽诔绦蜻\(yùn)行過程中向容器中添加基茵、刪除、修改字符壳影。
StringBuffer 本質(zhì)上是一個(gè)字符數(shù)組的包裝類拱层,并提供了很多方法向這個(gè)字符數(shù)組中添加、刪除宴咧、修改字符根灯。
并且Stringbuffer是線程安全的
Stringbuffer的默認(rèn)字符數(shù)組的長(zhǎng)度是16,如果你要超過16掺栅,那也行烙肺,他會(huì)自動(dòng)增加容量給你,可是他擴(kuò)容的規(guī)則是:當(dāng)前容量*2+2的氧卧,所以有時(shí)候可能會(huì)浪費(fèi)很多空間桃笙,但是如果未來不再向這個(gè)數(shù)組中添加字符,那可以通過trimtosize來優(yōu)化他沙绝,比如給你的空間是34搏明,你只用了17鼠锈,他就會(huì)把多余的給清除,但是切記熏瞄,是未來確定不再添加字符才進(jìn)行的操作脚祟,不然到時(shí)候又要重新申請(qǐng)空間,久的空間又丟了
StringBuffer與StringBuilder區(qū)別(面試題經(jīng)常有)
StringBuffer 是線程安全的强饮,執(zhí)行效率低,JDK1.0出現(xiàn)? (多線程)
StringBuiler 就是為了緩解執(zhí)行效率低而產(chǎn)生的为黎,但線程不安全邮丰。JDK 1.5出現(xiàn) (單線程)