7.28下午學(xué)習(xí)總結(jié)

包裝類的亨元模式

  • 顧名思義:共享元對(duì)象。如果在一個(gè)系統(tǒng)中存在多個(gè)相同的對(duì)象,那么只需要共享一份對(duì)象的拷貝,而不必為每一次使用創(chuàng)建新的對(duì)象。
    享元模式是為數(shù)不多的、只為提升系統(tǒng)性能而生的設(shè)計(jì)模式。它的主要作用就是復(fù)用對(duì)象,以節(jié)省內(nèi)存空間和對(duì)象創(chuàng)建時(shí)間。
public class day1 {
public static void main(String[] args) {
    function();
}
public static void function(){
    String num ="6789";
    String num1 ="6789";
    String num2=new String("6789");
    System.out.println(num==num1);
    System.out.println(num2==num);
        System.out.println(num2==num1
    
}
}

程序輸出結(jié)果:
true
false
false

序列化

什么事java對(duì)象序列化

  • Java平臺(tái)允許我們?cè)趦?nèi)存中創(chuàng)建可復(fù)用的Java對(duì)象,但一般情況下,只有當(dāng)JVM處于運(yùn)行時(shí),這些對(duì)象才可能存在,即,這些對(duì)象的生命周期不會(huì)比JVM的生命周期更長(zhǎng)。但在現(xiàn)實(shí)應(yīng)用中,就可能要求在JVM停止運(yùn)行之后能夠保存(持久化)指定的對(duì)象,并在將來重新讀取被保存的對(duì)象。Java對(duì)象序列化就能夠幫助我們實(shí)現(xiàn)該功能。
  • 使用Java對(duì)象序列化,在保存對(duì)象時(shí),會(huì)把其狀態(tài)保存為一組字節(jié),在未來,再將這些字節(jié)組裝成對(duì)象。必須注意地是,對(duì)象序列化保存的是對(duì)象的"狀態(tài)",即它的成員變量。由此可知,對(duì)象序列化不會(huì)關(guān)注類中的靜態(tài)變量。
  • 除了在持久化對(duì)象時(shí)會(huì)用到對(duì)象序列化之外,當(dāng)使用RMI(遠(yuǎn)程方法調(diào)用),或在網(wǎng)絡(luò)中傳遞對(duì)象時(shí),都會(huì)用到對(duì)象序列化。Java序列化API為處理對(duì)象序列化提供了一個(gè)標(biāo)準(zhǔn)機(jī)制,該API簡(jiǎn)單易用。

String類的常用方法

length() 字符串的長(zhǎng)度

charAt() 截取一個(gè)字符

public static void function_5(){
    String arr1 = "aBcd";
    System.out.println(arr1.charAt(2));
}

輸出結(jié)果:
c

public static void function_2(){
    String arr = "jkdakjqj";
    System.out.println(arr.length());
}

輸出結(jié)果:8
toCharArray()轉(zhuǎn)換為字符數(shù)組

public static void function_3(){
    String arr = "jkdakjqj";//定義字符串
    char[] ch = arr.toCharArray();//將字符串轉(zhuǎn)成字符數(shù)組
    for(int i = 0;i<ch.length;i++){
        System.out.print(ch[i]);//遍歷數(shù)組
     }

輸出結(jié)果:jkdakjqj
equals()和equalsIgnoreCase() 比較兩個(gè)字符串

public static void function_4(){
    String arr1 = "aBcd";
    String arr2 = "abcd";
    boolean s1 = arr1.equals(arr2);//兩個(gè)字符串中字符完全相等,返回true
    boolean s2 = arr1.equalsIgnoreCase(arr2);//判斷字符串是否完全相等,忽略大小寫
    System.out.println(s1);
    System.out.println(s2);
}

輸出結(jié)果:false ture
startsWith()方法決定是否以特定字符串開始,

public static void function_6(){
    String arr1 = "abcd";
    boolean b = arr1.startsWith("ab");// 判斷"ab"是不是"abcd"的前綴
    System.out.println(b);
}

輸出結(jié)果:ture
endWith()方法決定是否以特定字符串結(jié)束

public static void function_7(){
    String arr1 = "abcd";
    boolean b = arr1.endWith("cv");// 判斷"ab"是不是"abcd"的前綴
    System.out.println(b);
}

輸出結(jié)果:false
compareTo()和compareToIgnoreCase() 比較字符串

public static void function_4(){
    String arr1 = "aBcd";
    String arr2 = "abcd";
    int s1 = arr1.compareTo(arr2);
    int s2 = arr1.compareToIgnoreCase(arr2);
    System.out.println(s1);
    System.out.println(s2);
}

輸出結(jié)果:-32 0

indexOf() 查找字符或者子串第一次出現(xiàn)的地方。?lastIndexOf() 查找字符
或者子串是后一次出現(xiàn)的地方。

public static void function_4(){
    String arr1 = "aBcbdb"; 
    int s1 = arr1.indexOf("b"); 
    System.out.println(s1);//返回指定字符在此字符串中第一次出現(xiàn)處的索引。
    
}

輸出結(jié)果:3
substring()截取字符串

public static void function_4(){
    String arr1 = "aBcbdb";
    String s1 = arr1.substring(3);//包含頭,后面的全要
    System.out.println(s1);
    String s2 = arr1.substring(1,3);//包含頭,尾巴不要  
    System.out.println(s2);
    
}

輸出結(jié)果:bdb
Bc
replace() 替換

public static void function_4(){
    String arr1 = "aBcbdb";
    String arr2 = "dsa";
    String s1 = arr1.replace(arr1, arr2);
    System.out.println(s1);
}

輸出結(jié)果:dsa

concat() 連接兩個(gè)字符串
trim() 去掉起始和結(jié)尾的空格
toLowerCase()/ toUpperCase() 大小寫
split(String str)//將str作為分隔符進(jìn)行字符串分解

public static void function_4(){
    String arr1 = new String("abc");
    String arr2 = "abc";
    System.out.println(arr1==arr2);
    System.out.println(arr1.equals(arr2));      
}

輸出結(jié)果:
false
true

包裝類的常用方法

以Integer為例

MIN_VALUE = 0x80000000;
MAX_VALUE = 0x7fffffff;

public static void function(){
    
    System.out.println(Integer.MAX_VALUE);
    System.out.println(Integer.MIN_VALUE);
}

輸出結(jié)果:
2147483647
-2147483648
byteValue() 取得用byte類型表示的整數(shù)

public static void function(){
    Integer i = 562;
    System.out.println(i.byteValue());
}

輸出結(jié)果:50
compareTo/compare 比較大小

public static void function(){
    Integer  i = 4521;
    Integer  j = 1222;
    Integer  k = 1244;
    System.out.println(i.compareTo(j));
    System.out.println(Integer.compare(j,k));
    
}

輸出結(jié)果:
1
-1
toBinaryString(int i) 給定一個(gè)int類型數(shù)據(jù),返回這個(gè)數(shù)據(jù)的二進(jìn)制字符串。

public static void function(){
    String str = Integer.toBinaryString(230);
    System.out.println(str);
}

輸出結(jié)果:
11100110
bitCount(int i) 給定一個(gè)int類型數(shù)據(jù),返回這個(gè)數(shù)據(jù)的二進(jìn)制串中“1”的總數(shù)量。
Integer decode(String nm) 給定一個(gè)10進(jìn)制,8進(jìn)制,16進(jìn)制中任何一種進(jìn)制的字符串,該方法可以將傳入的字符串轉(zhuǎn)化為10進(jìn)制數(shù)字的Integer類型并返回。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,625評(píng)論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Java 語言支持的類型分為兩類:基本類型和引用類型。整型(byte 1, short 2, int 4, lon...
    xiaogmail閱讀 1,444評(píng)論 0 10
  • 發(fā)起人:隨心雜談 活動(dòng)主題:以筆會(huì)友,以情寫詩 活動(dòng)目的:寄情于字,交友于情;鍛煉功底,分享靈感 活動(dòng)內(nèi)容及要求:...
    隨心雜談閱讀 2,058評(píng)論 12 3
  • “雙11”不知道從何時(shí)成為舉國(guó)歡慶的日子。因?yàn)椤半p11”,馬云笑了;因?yàn)椤半p11”,線上線下各商家笑了;因?yàn)椤半p1...
    常妙閱讀 442評(píng)論 2 4

友情鏈接更多精彩內(nèi)容