包裝類的享元模式:
顧名思義:共享元對象。如果在一個系統(tǒng)中存在多個相同的對象,那么只需要共享一份對象的拷貝,而不必為每一次使用創(chuàng)建新的對象。
享元模式是為數(shù)不多的、只為提升系統(tǒng)性能而生的設(shè)計模式。它的主要作用就是復(fù)用對象,以節(jié)省內(nèi)存空間和對象創(chuàng)建時間。
Java對象的序列化
1. 什么是Java對象序列化
Java平臺允許我們在內(nèi)存中創(chuàng)建可復(fù)用的Java對象,但一般情況下,只有當(dāng)JVM處于運行時,這些對象才可能存在,即,這些對象的生命周期不會比JVM的生命周期更長。但在現(xiàn)實應(yīng)用中,就可能要求在JVM停止運行之后能夠保存(持久化)指定的對象,并在將來重新讀取被保存的對象。Java對象序列化就能夠幫助我們實現(xiàn)該功能。
使用Java對象序列化,在保存對象時,會把其狀態(tài)保存為一組字節(jié),在未來,再將這些字節(jié)組裝成對象。必須注意地是,對象序列化保存的是對象的"狀態(tài)",即它的成員變量。由此可知,對象序列化不會關(guān)注類中的靜態(tài)變量。
除了在持久化對象時會用到對象序列化之外,當(dāng)使用RMI(遠(yuǎn)程方法調(diào)用),或在網(wǎng)絡(luò)中傳遞對象時,都會用到對象序列化。Java序列化API為處理對象序列化提供了一個標(biāo)準(zhǔn)機制,該API簡單易用。
包裝類的常用方法:
以Integer為例
MIN_VALUE = 0x80000000;
MAX_VALUE = 0x7fffffff;
byteValue() 取得用byte類型表示的整數(shù)
compareTo/compare 比較大小
toBinaryString(int i) 給定一個int類型數(shù)據(jù),返回這個數(shù)據(jù)的二進(jìn)制字符串。
bitCount(int i) 給定一個int類型數(shù)據(jù),返回這個數(shù)據(jù)的二進(jìn)制串中“1”的總數(shù)量。
Integer decode(String nm) 給定一個10進(jìn)制,8進(jìn)制,16進(jìn)制中任何一種進(jìn)制的字符串,該方法可以將傳入的字符串轉(zhuǎn)化為10進(jìn)制數(shù)字的Integer類型并返回。
String類的常用方法:
length() 字符串的長度
charAt()?截取一個字符
toCharArray()轉(zhuǎn)換為字符數(shù)組
equals()和equalsIgnoreCase()?比較兩個字符串
startsWith()方法決定是否以特定字符串開始,
endWith()方法決定是否以特定字符串結(jié)束
compareTo()和compareToIgnoreCase()?比較字符串
indexOf() 查找字符或者子串第一次出現(xiàn)的地方。?lastIndexOf() 查找字符或者子串是后一次出現(xiàn)的地方。
substring()截取字符串
replace()?替換
concat()?連接兩個字符串
trim()?去掉起始和結(jié)尾的空格
toLowerCase()/?toUpperCase() 大小寫
split(String str)//將str作為分隔符進(jìn)行字符串分解