1. 程式人生 > >Java學習第十七、十八、十九天總結

Java學習第十七、十八、十九天總結

常用類及一些常用方法

在這裡插入圖片描述

常用類 系統相關的兩個類 1.System(代表了系統執行平臺) System.currentTimeMillis()是獲得系統當前時間的函式 返回的是系統當前時間和1970-01-01午夜時間的差值得毫秒值 System.nanoTime()這個函式並非是獲取系統當前時間的函式,它是一個獲得系統計時器的函式,該函式不能表示具體的日期,它只能表示從某一個不確定的時間,到當前時間的時間差,返回的是最準確的可用系統當前值(以毫微秒為單位)。 System.exit(n);//關閉虛擬機器 System.gc( );//垃圾回收 2.Runtime(獲得jvm執行環境) Runtime.getRuntime().maxMemory//得到最大的jvm虛擬機器記憶體 Runtime.getRuntime().freeMemory();//得到jvm虛擬機器中的空閒記憶體 Runtime.getRuntime().totalMemory();//當前程式正在使用的記憶體 Runtime.getRuntime(). availableProcessors();//得到處理器的數量 Runtime.getRuntime().exec(””);//執行一些可執行檔案

字串相關的類 1.String String字串一旦確定,那麼這個字串無論是長度還是內容都不能改變了。 使用構造器建立的字串資料直接存放在堆中,而不是通過構造器建立的字串放置在常量池 String str = new String(abc);程式碼實際上建立了兩個程式碼,一個在隊中(str),一個在常量池中abc Str.charAt(index)//按照字元在字串中,所在的位置獲取對應的字元資料 Str.comeareTo(”abcd”);//主要用於字串拼接(建立3個物件),不是在原有字串後面去追加,而是建立一個新的字串 Str.contains(”bc”)//判斷字串中,是否存在某一個字串 Str.contentEquals(”abc”)//判斷兩個字串內容是否相同 String [] names = str.split("-");//拆分字串 Str.indexOf(”a”);//返回字串a第一次出現的下標,沒有則返回-1 Char [] arrs = “abcd”.toCharArray();//將字串轉換為字元陣列 “ a d ”.trim();//trim(),可以忽略字串前後的空白(空格) String.valueOf(1);//讓基本資料型別和引用資料型別以字串的形式展現 2.StringBuffer StringBuffer類操作字串的很多方法與String類相同,但是StringBuffer主要偏重於對字串的變化。雖然二者都可以代表字串,但是二者內部的實現方式有所不同。StringBuffer在進行字串處理時,不生成新的物件,在記憶體使用上優於String。 StringBuffer = new StringBuffer();//StringBuffer實際上類似於超級陣列對陣列中資料進行增加、刪除、查詢、修改的作用 buffer.delete(int a);刪除a號位的字元資料 buffer.insert(int a, “1”);//在指定位置加入指定資料 buffer.delete(int a, int b);刪除a號位至b號位之間的字元資料,包括a號位但不包括b號位 buffer.replace(int start, int end,String str);從start位置開始到 end-1 位置之間替換原資料為str buffer.reverse();//StringBuffer類中陣列倒敘排列 buffer.setCharAt(int index, Char ch);//使用ch字元去替代下標為index的字元 3.StringBulider StringBulider與StringBuffer用法是一樣的。 String操作的是不可變的字串,StringBuffer與StringBulider操作的是內容可變的(與前面超級陣列一樣,通過陣列複製來完成動態擴容和動態縮容以及修改和刪除),不同的是StringBuffer是執行緒安全的(一次只能一個執行緒使用),而StringBulider則不是執行緒安全的

日期相關類 1.Date類 Date date = new Date();//得到當前的系統時間 date.getTime();//得到date時間據1970-01-01 00:00:00的時間差的毫秒值 日期的輸出格式採用的是格林威治時間 2.DateFormat類 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間 3.SimpleDateFormat類 SimpleDateFormat是DateFormat的子類 將日期轉換為字串叫格式化,字串轉換為日期叫解析 SimpDateFormat df = new SimpDateFormat(”yyyy-mm-dd”);// df.applyPattern(”yyyy-mm-dd”);// 應用模板格式格式化日期格式為年-月-日 df.format(date);//按照模板格式化日期為字串型資料 date = df.parse(datestr);//parse將字串解析為日期

4.Calerdar類 由於Date類在編寫的時候並沒有考慮到各個國家的實際情況,在國際化方面考慮不夠周到,所以從JDK1.1版本開始,Java中推薦使用Calendar類來處理日期時間 Calendar calendar = calendar.getInstance();//獲得calendar抽象類的子類的例項。(預設獲得當前的系統時間) calendar.setTime(date);//將一個以前的時間,裝給calendar類 calendar.add();根據當前時間,推算以後的時間,或者是以前的時間 calendar.compareTo(Calendar anothercalend);//比較兩個日期時間的前後

數學計算相關類 1.Math類 Math.abs(num);//取一個數的絕對值 Math.pow( num,N);//計算num的N次方 Math.rint();//返回最接近引數並等於某一整數的double值。如果兩個同為整數的double值同樣接近,那麼結果取偶數 Math.round();//四捨五入求值 Math.sqrt(num);//求正的平方根 2.隨機數 在Java中,產生隨機數的方法有三種: 1.通過System.currentTimeMillis()來獲取一個當前時間毫秒數的long型數字,我們可以把這個數字當作隨機數 2.通過Math類的靜態方法random()返回一個0到1之間的double值。我們可以將這個值乘以一定的數,比如100,那麼它就是一個100以內的隨機數 3.通過Random類來產生一個隨機數 Random類 Random random = new Random(num);//如果兩次產生隨機數的種子(num)是相同的,那麼,兩次生成的隨機數的序列也是一樣的 Random random = new Random(); int a = random.nextInt(n);//z在0-n(包括0但不包括n)之間隨機產生一個隨機整數

包裝類與自動裝箱拆箱 為了使用物件方式處理基本資料型別,Java中將這八種基本資料型別封裝成類,稱為包裝類:Boolean類、Byte類、Short類、Integer類、Long類、Character類、Float類、Double類 八種包裝類實際上分為兩種組 1.數值型 Integer、Byte、Short、Long、Float、Double,這些類包裝類都是Number類的子類 2.Character和Boolean類 所有的包裝類都是final型別,不能建立它們的子類,包裝類是不可變類。一旦建立了一個包裝類的物件,那麼它所包含的基本型別資料就不能改變

正則表示式 正則表示式第一批符號 1.普通符號 字母、單詞、數字、漢字、下劃線、具有一定含義的符號 2.轉義符號 \t、\n、\f、\r、\、$、^ 3.標準字元集合 .,\b,\B,\d,\D,\s,\S,\w,\W 4.自定義的字元集合(使用[ ]) 轉義符號放進括號依舊能夠識別出來;標準字元集合放進括號,會包含標準字元集合,但是如果具有某些特殊含義的標點符號,被裝入自定義的字元集合後,會被認為就是一個普通符號,沒有任何其他的含義 5.量詞 用於修飾正則表示式中字元號的匹配次數的符號,代表了前面的表示式出現的次數,比如:\d{2} *:代表前面的子表示式出現的次數為0或多次;等同於{0,} +:代表前面的子表示式出現的次數為1或多次;等同於{1, {n}:代表前面的子表示式出現的次數為n次; {n,m}:代表前面的子表示式出現的次數為n次到m次;若m不寫,則表示n次到無窮次 ?主要跟在上面四個符號之後,其主要作用是將貪婪模式轉換為非貪婪模式,所謂的貪婪模式就是讓我們的子表示式儘可能的執行最多的次數;而非貪婪模式就是讓我們的子表示式儘可能的執行最少的次數 6.選擇符和分組 選擇符:| (或的意思) 捕獲組:() 他會從字串中捕獲符合我們條件的內容,並將內容丟入到記憶體中,以便下次使用 ^在正則表示式中一般存在兩種含義 1.限定開頭 如果是在匹配文字輸入的開始的時候,將會匹配後面緊跟的字元 2.取反 當這個字元出現在自定義字元集合的第一個字元時,表示取反[a]表示匹配除了a的任意字元。但是[^]就表示普通的字元,例如:[^abc] Pattern類:正則表示式的編譯類 Pattern類中可以使用pattern()方法去獲取正在使用的正則表示式 pattern的使用: Pattern p = Pattern.compile(”正則表示式”); Matcher m =p.macher(”輸入的需要匹配的字串”); boolean b = m.matches();//返回匹配結果 m.matches();//與整個字串進行匹配 m.lookingAt();//嘗試從區域開頭開始的輸入序列與該模式匹配 m.end();代表匹配的字串的長度 m.group(i);//捕獲組中下標從0開始,0代表整個組的內容,但是從1開始以後的下標,都分別代表的是各自的捕獲組捕獲的內容 m.group();返回正在與匹配器進行匹配成功的子字串內容 m.find();嘗試查詢與該模式匹配的輸入序列的下一個子序列,此方法從匹配器區域的開頭開始,如果該方法呼叫成功了,並且從那時開始匹配器又沒有被重置的話,則從以前匹配操作沒有匹配成功的第一個字元開始 如果要查詢一個字串中,所有的匹配項(包括第一個),那麼就必須先使用lookingAt(),然後再使用find()。