Java第七天-常用類及列舉

關於我愛你啊發表於2020-10-24

包裝類

Java中每一種基本型別都會對應一個唯一的包裝類,基本型別與其包裝類都可以通過包裝類中的靜態或者成員方法進行轉換。且所有的包裝類都是final修飾的,這就表明它們都是無法被繼承和重寫的類。
八大基本資料型別都有與之對應的包裝類。包裝類都是以基本資料名的大寫字母開頭,比如

double 對應 Double

其中除了int型別的包裝類名為Integer外其他都是一樣的規則。
以Integer包裝類為例:

建立物件及方法

    Integer i = new Integer(7)
	Integer i = new Integer("23")

parseInt將字串轉換為int型別

	int i = Integer.parseInt("23")

通過建構函式建立一個Integer物件

	int i = Integer.valueOf("23")

獲取數字的二進位制

	String str = Integer.toBinaryString("2");

獲取數字的16進位制

	String str = Integer.toHexString("2");

獲取陣列的8進位制

	String str = Integer.toOctalString("2");

獲取數字的15進位制

	String str = Integer.toString(315);

Math數學類

同樣java也提供了很多數學運算的的類及裡面對數學所用到的計算

常量

PI		表示圓周率

E		表示自然對數底數e的值

運算方法

  • 用於取d的平方根,d不能是負值:sqrt(double d)
  • 用於取d的立方根:cbrt(double d)
  • 用於取a的b次方:pow(double a,double b)

取整方法

  • 返回大於或等於引數的最小整數:ceil(double d)
  • 返回小於或等於引數的最大整數:floor(double d)
  • 返回引數最接近的整數,如果同樣接近,則取偶數:rint(double f)
  • 將引數加0.5後返回小於 或等於引數的最大int值:round(float a)
  • 將引數加上0.5後返回小於或等於引數的最大long值:round(double d)

取最大值、最小值、絕對值

  • 取a到b之間最大值:max(double a,double b)
  • 取a到b之間最小值,支援int、long、float、double型別:min(int a,int b)
  • 取絕對值,根據引數返回型別,支援int、long、float、double:abs(int a)

Random隨機數類

Java雖然在數學類裡也提供了隨機數的方法,但是還有一個隨機數的類。
返回一個隨機int型別值,隨引數返回不同型別的值,支援int、long、boolean、float、double。方法根據型別名稱而定

nextInt(int)
nextLong(long)

返回一個隨機大於等於0,小於n的隨機整數:int x = nextInt(int n),取值範圍在0<=x<n。

Object類

萬物之王Object類,它是所有類的父類,不管是Java內建的,還是自己定義的類都是間接或直接繼承Object類。

Object中的方法

  • 返回該物件的型別,任何類都有它的型別:getClass()
  • 比較物件的地址:equals()
    比較兩個物件的值時,那是重寫了equals()方法
  • 返回該物件的hash值:hashCode()
    如果兩個物件的hash值相同他們就是呼叫同一塊地址
  • 執行緒等待:wait()
  • 喚醒其中一個等待的執行緒:notify()
  • 喚醒所有等待中的執行緒:notifyAll()

Date時間日期類

表示時間日期類

建立現在時間

	Date date = new Date()
  • 計算從1970.1.1開始的毫秒數返回long型:getTime()
  • 設定當前Date物件所表示的日期時間值:setTime(long t)

Calendar日期類

時間日期Date類的衍生類,它比Date類更擅長操作時間資料,日曆表示法的抽象類,可以使用它的靜態方法獲取當前時間日期物件。

獲取日期物件

	Calendar cal = Calendar.getInstance();

Calendar日期類的值

獲取指定的單位的日曆的值

YEAR
MONTH月,月份的返回值下標只能表示0~11,所以+1才是真實的月份
DATE天數

方法

  • 獲取當期那日曆的日期:getTime()
  • 新增日曆:add(日曆的值, 新增的值)
  • 將日曆新增兩個月:cal.add(Calendar.MONTH, 2);
  • 判斷日期前後
    after()前
    before()後
  • 計算兩個日期相差的天數:until()
	LocalDate datel = LocalDate.of(2020, 2, 22);
	LocalDate date2 = LocalDate.of(2020, 3, 22);
	long days = datel.until(date2, ChronoUnit.DAYS);
	System.out.println("兩個時間段相差:" + days);
  • 指定日期格式:SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
  • 字串轉日期:parse(str)
  • 日期轉字串:format(date)

子類GregorianCalendar物件

因為Calendar類是個抽象類,無法例項化物件,但是可以通過他的子類實現建立物件

建立物件

	Calendar cc = new GregorianCalendar(2020,11,7);

String類

字串類,對字串進行查詢、檢索、轉變、大小寫、擷取等一系列操作。
特點:它是一個不可變的字串,他的值建立後不能被改變。

方法

  • 忽略大小寫比較:equalsIgnoreCase(str)
  • 獲取字串索引位置:charAt(index)
  • 連線字串:concat()
  • 比較兩個是否相等:compareTo()
  • 查詢是否有指定字串:contains()
  • 判斷是否以指定字串結尾:endWith()
  • 獲取字串陣列:toCharArray()
  • 格式化字串:format()
  • 返回字串對應位元組陣列:getBytes()
  • 檢索字串出現的位置:indexOf(str)
  • 判斷是否為空字串:isEmpty()
  • 拼接字串:join()
  • 分割字串:substring()
  • 替換字串:replace()
  • 字串轉大寫:toUpperCase()
  • 字串轉小寫:toLowerCase()
  • 去空格:trim()

StringBuffer類

執行緒安全,可變的字元序列。 字串緩衝區就像一個String ,但可以修改。 在任何時間點,它包含一些特定的字元序列,但可以通過某些方法呼叫來更改序列的長度和內容

	StringBuffer sb = new StringBuffer();
	StringBuffer sb = new StringBuffer(str);
  • 追加字串:append(str)
  • 刪除字串區間:delete(int,int)
  • 在指定下標後面新增字串:insert(int,str)
  • 字串反轉:reverse()
  • 獲取字串容量:capacity()
  • 擴充容量:ensureCapacity(int)

列舉型別

用於設定常量。列舉型別是一種資料型別,所以它被視為具有名稱的常量的集合。

語法:

/**
     * 列舉的誕生:
     *          在JDK5之前,定義常量需要使用public final static單獨定義,如果有一組常量,
     * 				需要定義一組final修飾的型別,這樣會很繁瑣
     *          JDK5後推出列舉型別,可以將一組常量定義一個自定義類,使用時通過該型別直接方法。
     */
public enum Color {
    RED,
    BLUE,
    YELLOW,
}

規範

  • 定義英文常量時使用大寫,如果定義顏色RED這樣
  • 列舉類裡也可以有構造方法、屬性、普通方法
  • 並且可以像陣列一樣給他下標,遍歷所有的值

相關文章