常用類process1

37201發表於2024-08-05

1、內部類

在一個類內部再定義一個類(class)

特點:

  1. 編譯後可生成獨立的位元組碼檔案
  2. 內部類也可訪問外部類的私有(private)成員且不破壞封裝
  3. 可為外部類提供必要的功能元件

1.1成員內部類

package inner;
//成員內部類
public class menberOuter 

1.2靜態內部類

package inner;
//靜態內部類
public class stOuter 

1.3區域性內部類

package inner;
//區域性內部類
public class pOuter 

1.4匿名內部類

package inner;
//介面實現多繼承,需要重寫介面中得方法再實現,這裡講透過區域性內部類來實現(但只能使用一次——透過區域性內部類來最佳化)
public class Utest

2、Object類

根類——預設所有類都繼承

2.1getClass(){}方法

返回引用中儲存得實際物件型別,通常用來判斷兩個引用中實際儲存物件型別是否一致

2.2hashCode(){}方法

返回物件得雜湊碼值(根據物件得地址或字串或數字計算出來得int數字)

一般情況下返回相同得雜湊碼值

2.3toString(){}方法

返回該物件的字串表示

可以進行覆蓋該,如:展示物件各個屬性值

2.4equals(){}方法

boolean型別,預設實現為(this==obj),比較兩個物件地址是否相同

可以進行覆蓋,比較兩個物件內容是否相同

  1. 比較兩個引用是否指向同一個物件
  2. 判斷obj是否為null
  3. 判斷兩個引用型別指向的實際物件是否一致
  4. 強制型別轉換
  5. 依次比較各個屬性值是否相同

2.5finalize(){}方法

  • 一般當物件判定為垃圾物件時,由JVM自動呼叫此方法,用以標記為垃圾物件行列

  • 垃圾物件:沒有有效引用指向此物件時

  • 垃圾回收:由GC銷燬垃圾物件,釋放資料儲存空間

  • 自動回收機制:JVM記憶體耗盡 ,一次性回收所有垃圾物件

  • 手動回收機制:使用System.gc();通知JVM執行垃圾回收

    package ob1;
    
    import java.util.Objects;
    
    //getClass 通常用來判斷兩個引用中實際儲存物件型別是否一致
    //hashCode 返回物件得雜湊碼值(根據物件得地址或字串或數字計算出來得int數字),一般情況下相同
    public class Stuent 
    

3、包裝類

  • 基本資料型別所對應的引用資料型別
  • Object可統一所有資料型別 , 包裝類的預設值為null
  • 八大基本型別包裝類首字母大寫,除int——Integer,char——Character

在JDK版本包(中文版)可以檢視詳細內容

3.1型別轉換-裝箱和拆箱

基本型別(棧)與引用型別-包裝類(堆)的轉換

棧——>堆(裝箱),反之拆箱

  1. Number父類提供的6個共性方法

3.2基本型別和字串轉換

  1. paraseXXX()靜態方法

在做轉換時,保證型別相容

package cast;
/*
轉換方法
1.Number父類提供的6個共性方法
2.paraseXXX()靜態方法
3.valueOf()靜態方法
 */
public class Demo1

4、Integer緩衝區

Java預先建立了256個常用的整數包裝型別物件

Integer integer3 = 100;//自動裝箱,shif+f4檢視程式碼詳細語句-實際調的Integer.valueOf(100)方法,點住語句Control鍵檢視原始碼-128到127

package cast;
//Integer緩衝區-Java預先建立了256個常用的整數包裝型別物件
//shif+f4檢視程式碼詳細語句
public class Demo2

5、String字串

5.1String

  1. 字串建立以後不可以改變
  2. 字串儲存在字串池中,可以共享
  3. 字串的另一種建立方式String str = new String("另一種建立方式")

5.2String常用方法

5.2.1字串返回控制

  1. length();返回字串的長度,從0開始,一個字元算一個(空格也算一個字元)

  2. charAt(int index);返回某個位置的字串,最後一個字元要減一(因為從0開始),否則會報錯

  3. contains(String str);判斷是否包含某個字串

  4. toCharArray();返回字串對應的數值

  5. indexOf(String str);返回字串首次出現的位置-還可以指定開始

  6. lastIndexOf(String str);返回字串最後出現的位置

5.2.2字串修改

  1. trim();去掉字串前後的空格

  2. toUpperCase();把小寫改成大寫,toLowerCase();把大寫改成小寫

  3. endWith(String str);判斷是否以str結尾,startswith(str);判斷是否以str開頭

  4. replace(char oldChar,char newChar);用新的字元或字串替換舊的字元或字串

  5. split(String str);對字串進行拆分

  6. equals();比較內容,equalsIgnoreCase();compare();忽略大小寫的比較,比較字典表中的大小

    package str;
    
    import java.util.Arrays;
    
    //String
    public class Demo1 
    

5.3案例演示

已知String str = "this is a text"

  1. 將str中的單詞單獨提取出來

  2. 將str中的text替換為practice

  3. 在text前面加入一個easy

  4. 將每個單詞的首字母改為大寫

    package str;
    /*
    已知String str = "this is a text"
    1. 將str中的單詞單獨提取出來
    2. 將str中的text替換為practice
    3. 在text前面加入一個easy
    4. 將每個單詞的首字母改為大寫
     */
    public class Demo2
    

5.4StringBuffer和String Builder

  • StringBuffer,可變長字串,效率慢,執行緒安全

  • String Builder,可變長字串,效率快,執行緒不安全——推薦使用

效率比String高並且更節省空間

  1. append();追加

  2. insert();新增

  3. replace();指定位置替換

  4. delete();刪除

  5. 清空,sb.delete(0,sb.length());

    package str;
    /*
    - StringBuffer,可變長字串,效率慢,執行緒安全
    - String Builder,可變長字串,效率快,執行緒不安全——推薦使用
    效率比String高並且更節省空間
     */
    public class Demo3
    

6、BigDecimal類的使用

小數型別在儲存時採用的近似——使用BigDecimal精度更高

進行計算時採用的呼叫方法

  1. subtract();減法

  2. add();加法

  3. multiply();乘法

  4. 複合運算的div();除法—注意這裡除不得是除盡的,用除中的BigDecimal保留,BigDecimal.ROUND_HALF_UP(四捨五入)

    package bd;
    /*
    小數型別在儲存時採用的近似——使用BigDecimal精度更高
    進行計算時採用的呼叫方法
     */
    import java.math.BigDecimal;
    import java.math.RoundingMode;
    public class Demo1
    

7、Date類的使用

表示特定的瞬間,精確到毫秒,但已被Calender類所替代

但有些還在用

列印當前時間

Date date1 = new Date();
System.out.println(date1.toString());
        1.after(); ,before();
        2.comparedTo();
        3.equals();
        
package dt;
/*
Date
表示特定的瞬間,精確到毫秒,但已被Calender類所替代
但有些還在用
 */
import java.util.Date;
public class Demo1

8、Calender類的使用

Calender提供了獲取或者設定各種日曆欄位的方法

構造方法protected Canlender();由於修飾符是protected,所以無法直接建立該物件

2.獲取引數值-點進Calendar進去看可以獲得引數值
3.set();修改時間
4.add();方法修改時間
5.補充方法,getActualMaxinum();這個月的最大天,getActualMininum();這個月的最小天

package bd;
/*
Calender提供了獲取或者設定各種日曆欄位的方法
構造方法protected Canlender();由於修飾符是protected,所以無法直接建立該物件
 */
import java.util.Calendar;

public class Demo2

9、SimpleDateFormat類的使用

格式化(把日期轉成字串),解析(把字串轉成日期)

y,M,d,H(24小時),m,s,S(毫秒)

package bd;
/*
格式化(把日期轉成字串),解析(把字串轉成日期)
y,M,d,H(24小時),m,s,S(毫秒)
 */
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo3

10、System類

System系統類,主要用於獲取系統的屬性資料和其他操作,構造方法是私有的(直接引用)

10.1static void arraycopy();-複製陣列

  • arraycopy();-複製陣列,src-源陣列,srcPos-從那個位置開始複製(第一位置是0),dest-目標陣列,destPose-目標陣列的位置,length-複製的長度
  • Arrays.copyOf與之的區別:效率更高

10.2static long currentTimeMillis();以毫秒返回當前時間

10.3static void gc();啟動垃圾回收站(JVM)

10.4、static void exit(int status);退出(JVM),0表示正常,非0表示異常

package st;
//System
public class Demo1 

相關文章