文章目錄
- 常用類別庫
- 一、常用類別庫
- 1、java.util.Objects
- 2、java.lang.Math
- 3、java.util.Arrays
- 4、java.math.BigDecimal
- 5、java.util.Date
- 6、java.text.DateFormat
- 7、java.util.Calendar
- 8、java.lang.System
- 二、泛型
- 1、概述
- 2、使用
- 三、String(非常重要)
- 總結
常用類別庫
- 學習方法
必須熟悉,長期記憶,大量測驗一個類,記錄并掌握其功能,
例如:X工具類,有X方法,方法有什么功能,需要傳遞X引數,能得到X結果,
一、常用類別庫
(基于JDK 11)
1、java.util.Objects
所有Java類的基類(頂級父類),所有類層次結構的根,JDK7版本添加,包含了很多靜態方法,
-
equals:語法格式:Object.equals(a, b);
-
checkFromIndexSize:檢查下標是否越界
-
hashCode:計算物件的哈希值
-
isNull:語法格式:Object.isNull(a);
其他的方法在API中查看,都需要整理
2、java.lang.Math
執行數字運算,API中也有大量方法,
-
Math.abs(-10);:-10的絕對值,結果為10
-
Math.min(100, 200):兩數之間較小值,結果為100
-
Math.max(100, 200):兩數之間較大值,結果為200
-
約等:
- Math.round(24.5):四舍五入,結果為25;Math.round(24.5),結果為-24
- Math.floor(3.5):回傳小于等于引數的最大整數,結果為3.0;Math.floor(-3.5),結果為-4.0
- Math.ceil(3.5):回傳大于等于引數的最大整數,結果為4.0;Math.ceil(-3.5),結果為-3.0
3、java.util.Arrays
可以對陣列進行操作,運用較多,重點整理API中的方法,
- binarySearch:查找陣列中某元素的下標
- compare:比較兩個陣列
- toString:列印陣列,可以取代for回圈遍歷陣列
- sort:對陣列進行排序
- copyOf:將陣列動態擴容
- arr = Array.copyOf(arr, 15);將arr擴容為長度15的陣列
4、java.math.BigDecimal
double d1 = 0.1;
double d2 = 0.2;
-
結果:并不是0.3,
-

-
問題:在Java中如果使用double進行算術運算,運算結果會缺失精度,
java.math.BigDecimal的作用:算術運算專用,解決小數運算問題
使用方式:傳遞一個String引數
BigDecimal b1 = new BigDecimal("0.1");
BigDecimal b2 = new BigDecimal("0.1");
| 構造方法 | 說明 |
|---|---|
| public BigDecimal(String val) {} | 常用構造方法 |
| 常用方法 | 作用 |
|---|---|
| add | 加法運算 |
| subtract | 減法運算 |
| multiply | 乘法運算 |
| divide | 除法運算 |
- API中BigDecimal有更多其他方法,建議仔細查看,并整理
5、java.util.Date
表示特定時刻,精度為毫秒,
PS:一天的毫秒數:24*60*60*1000
查看API,發現大部分方法已經過時,真正有用的是用它表示時刻的方法,
-
getTime()方法,回傳一個long型別的值,
- 獲取的是格林威治時間:1970年1月1日東八區早上8點整~現在的毫秒數,
- setTime()也可以用
- 有可能用到:對時間的比較
- after(Date when):測驗此日期是否在指定日期之后,
- before(Date when):測驗此日期是否在指定日期之前,
-
構造方法:沒過時的兩個
構造方法 概述 Date() 不傳引數,表示當前時間(此時此刻) Date(long date) 傳入一個毫秒數,表示從格林威治日到現在的時間,可以表示過去或未來的時間
new Date使用,
6、java.text.DateFormat
格式化日期,
| 字母 | 表示 |
|---|---|
| y | 年 |
| M | 月 |
| d | 日 |
| H | 時 |
| m | 分 |
| s | 秒 |
-
format()方法
例:2020年12月12日 12:12 12
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm ss"); String text = format.format(new Date()); System.out.println(text);運行結果:

-
parse()方法
將一段字串轉成Date
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm ss"); //parse:將yyyy-MM-dd HH:mm ss日期字串,轉為date物件 String text = format.format(new Date()); System.out.println(text); System.out.println(format.parse("2021-12-12 12:12 12"));運行結果:

-
此處注意:太容易混淆了,format是回傳的StringBuffer型別資料進行格式化日期,parse是傳入字串,回傳的是一個Date物件,
7、java.util.Calendar
抽象類,存在getInstance方法,不通過new,直接獲取即可,
其中提供了大量常量值,常用的有get和set,
- Calendar.YEAR:獲取年份
- Calendar.DAY_OF_YEAR:獲取一年中的第幾天
Calendar c = Calendar.getInstance();
//取出日歷中的資料
int year = c.get(Calendar.YEAR);
int day = c.get(Calendar.DAY_OF_YEAR);
System.out.println(year);
System.out.println(day);
運行結果:

//將年設定為2021年
c.set(Calendar.YEAR,2021);
int year = c.get(Calendar.YEAR);
int day = c.get(Calendar.DAY_OF_YEAR);
System.out.println(year);
System.out.println(day);
運行結果:

-
c.get(Calendar.WEEK_OF_YEAR); :獲取現在是一年中的第幾周
-
c.add(Calendar.YEAR,1);:給當前年份加1
- 需要注意的一點:
- 在日歷中月份是從0-11的,0表示1月份,11表示12月份
- 星期國外將星期七當作一周的第一天,星期六是一周的最后一天,
- 需要注意的一點:
-
getActualMaxmun:獲取某個欄位的最大值
8、java.lang.System
-
System.out
-
System.in
-
System.gc
二、泛型
1、概述
泛型,即“引數化型別”,就是將型別由原來的具體的型別引數化,類似于方法中的變數引數,此時型別也定 義成引數形式(可以稱之為型別形參),然后在使用/呼叫時傳入具體的型別(型別實參),
使用泛型可以:
- 提高代碼復用率
- 泛型中的型別在使用時指定,不需要強制型別轉換(型別安全,編譯器會檢查型別)
2、使用
- 泛型類
public class ClassName<T> {
private T data;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
- 泛型介面
public interface IntercaceName<T> {
T getData();
}
? 實作介面時是否實作泛型:
- 指定型別
public class Interface1 implements IntercaceName<String> {
private String text;
@Override
public String getData() {
return text;
}
}
- 不指定型別
public class Interface1<T> implements IntercaceName<T> {
private T data;
@Override
public T getData() {
return data;
}
}
- 泛型方法
private static <T> T 方法名(T a, T b) {}
注意:
- 在編譯之后程式會采取去泛型化的措施,也就是說Java中的泛型只在編譯階段有效,泛型資訊不會進入到運行時階段,
- 泛型限定和通配符
在使用泛型時,可以指定泛型的限定區域
-
例如:必須是某某類的子類或 某某介面的實作類,
格式:<T extends 類或介面1 & 介面2>
型別**通配符是使用?**代替方法具體的型別實參,
- 泛型上屆限定使用:<? extends Parent> 指定了泛型型別的上屆
- 泛型下屆限定使用:<? super Child> 指定了泛型型別的下屆
- 可以簡單理解為Object,但是使用時有很大區別:<?> 指定了沒有限制的泛型型別
三、String(非常重要)
Java程式中所有字串文字都是String類的實體,
API 中查看!
后續補充,
總結
學習這些類別庫為我們提供了非常方便的工具,提高了編碼效率,就是記憶起來比較花費時間,多多使用,多多熟悉,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/150187.html
標籤:其他
上一篇:使用Dockerfile構建SpringBoot Docker鏡像
下一篇:Java學習記錄(3)
