Java高级阶段技术总结
生活随笔
收集整理的這篇文章主要介紹了
Java高级阶段技术总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
String字符串
String是一個類,屬于引用類型。 Java程序中一切使用""引起來的內容,都是這個類的實例,稱為字符串對象。 字符串定義后是一個常量,值不可更改。字符串實際是一個字符數組。 String str="hello";//這句話在執行時,創建一個hello字符串對象,將其地址保存在str變量中 str="abc";//這里看似是在改變字符串的值,實際是又創建了一個字符串對象abc,將其地址保存在str變 量中 //以上兩句話,在內存中會有兩個字符串對象hello和abc,str只引用最后賦值的字符串地址abcString str2="abc"; //字符串實際是一個字符數組 char[] list = {'a','b','c'}; String str3= new String(list); //這里str2和str3中保存的內容是一樣的可變字符串
String字符串對象是一個常量,在定義后其值不可改變。 如果使用String類的對象,對其頻繁更新時,就會不停地創建新的對象,重新引用。 所以如果要執行1000次重新賦值的過程,就要創建1000個字符串對象,花費很多時間和內存空間,所以 效率很低。這時就需要使用可變字符串類 import java.math.BigDecimal; import java.util.Random; import java.util.zip.DeflaterOutputStream;/** 可變字符串 * */ public class Test1 { public static void main(String[] args) { //定義一個空的可變字符串對象 StringBuilder sb = new StringBuilder(); //定義一個普通字符串對象 String str = "";//1970 1 1 0:0:0 到當前這個瞬間,經過了多少毫秒。記錄開始時間 long begin = System.currentTimeMillis(); //模擬循環多次頻繁操作字符串,記錄花費的時間 for (int i = 1000000; i > 0; i--) { //如果使用字符串,每次循環都會創建一個新的String字符串對象,重寫引用給str,需要 花費大量時間 // str+=i; //如果使用可變字符串,只有一個對象sb參與,每次都在操作這個對象,不創建新對象,很快 就能結束 sb.append(i); } //記錄結束時間 long end = System.currentTimeMillis(); System.out.println(end - begin); } }StringBuilder類
用于表示可變字符串的一個類,是非線程安全的,建議在單線程環境下使用,效率略高于 StringBuffer。StringBuffer類
用于表示可變字符串的一個類,是線程安全的,建議在多線程環境下使用,效率略低于StringBuilder。 StringBuilder和StringBuffer中的方法作用都一致,只不過StringBuffer中的方法使用了synchronized關 鍵字修飾,表示一個同步方法,在多線程環境下不會出現問題。Date類
用于表示日期時間的類,位于java.util包下SimpleDateFormat類
是一個用于格式化日期的類。 //參數為一個日期模板 SimpleDateFormat(String pattern); //如定義這樣的一個模板對象 SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); //創建一個Date對象 Date now = new Date(); //調用格式化方法,參數為一個Date對象 String res=sdf.formart(now); //輸出的形式為2022/07/28 System.out.println(res);Calendar類
用于表示日歷的類。包含了很多日歷相關的信息。 是一個抽象類,無法直接創建對象,可以通過該類的靜態方法getInstance()獲取該類的實例。異常
當程序沒有按程序員的意愿正常執行,中途出錯導致程序中斷,出現這種情況,就稱為異常。 學習異常就是認識異常的種類和如何避免異常出現。 為了讓程序能正常執行,就需要學會解決異常。異常的產生
異常在程序中以對象的形式存在。當代碼執行時出現異常,虛擬機會自動創建一個相應的異常對象,如 果沒有對該異常進行處理,就會導致程序中斷。異常的分類
異常在程序中以對象的形式存在,所以異常有對應的類。數組與集合
數組的特點
數組中保存的元素都是有序的,可以通過下標快速訪問 數組中保存的數據都是同一種類型 數組的長度在定義后,無法改變 數組無法獲取其中保存的實際元素數量集合的特點
能保存一組數據,可以有序也可以無序 集合的容量可變 集合中可以保存不同類型的數據 可以獲取集合中實際的元素數量ArrayList和LinkedList的區別
1.兩者都是List接口的實現類,保存的元素有序可重復,允許保存null,擁有一些公共的方法,如 size(),isEmpty(),subList(int from,int to)等 2。ArrayList采用數組實現,對于隨機讀取效率更高,通常用于查詢;LinkedList采用雙向鏈表實現, 插入刪除不影響其他元素位置,通常用于中間插入刪除。Set接口(無序不重復)
無序集合,元素不可以重復,允許保存null,沒有索引。 在接口中定義了一些操作元素的方法,如獲取元素數量、添加、刪除、替換、截取等。總結
以上是生活随笔為你收集整理的Java高级阶段技术总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java三元组的快速转置_稀疏矩阵三元组
- 下一篇: 图像检索论文杂记