(基於JDK 11)
所有Java類的基礎類別(頂級父類別),所有類層次結構的根。JDK7版本新增,包含了很多靜態方法。
equals:語法格式:Object.equals(a, b);
checkFromIndexSize:檢查下標是否越界
hashCode:計算物件的雜湊值
isNull:語法格式:Object.isNull(a);
其他的方法在API中檢視,都需要整理
執行數位運算,API中也有大量方法。
Math.abs(-10);:-10的絕對值,結果為10
Math.min(100, 200):兩數之間較小值,結果為100
Math.max(100, 200):兩數之間較大值,結果為200
約等:
可以對陣列進行操作,運用較多,重點整理API中的方法。
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 | 除法運算 |
表示特定時刻,精度為毫秒。
PS:一天的毫秒數:24*60*60*1000
檢視API,發現大部分方法已經過時,真正有用的是用它表示時刻的方法。
getTime()方法,返回一個long型別的值。
構造方法:沒過時的兩個
構造方法 | 概述 |
---|---|
Date() | 不傳引數,表示當前時間(此時此刻) |
Date(long date) | 傳入一個毫秒數,表示從格林威治日到現在的時間,可以表示過去或未來的時間 |
new Date使用。
格式化日期。
字母 | 表示 |
---|---|
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物件。
抽象類,存在getInstance方法,不通過new,直接獲取即可。
其中提供了大量常數值,常用的有get和set。
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
getActualMaxmun:獲取某個欄位的最大值
System.out
System.in
System.gc
泛型,即「引數化型別」。就是將型別由原來的具體的型別引數化,類似於方法中的變數引數,此時型別也定 義成引數形式(可以稱之為型別形參),然後在使用/呼叫時傳入具體的型別(型別實參)。
使用泛型可以:
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) {}
注意:
在使用泛型時,可以指定泛型的限定區域
例如:必須是某某類的子類或 某某介面的實現類,
格式:<T extends 類或介面1 & 介面2>
型別**萬用字元是使用?**代替方法具體的型別實參。
Java程式中所有字串文字都是String類的範例。
API 中檢視!
後續補充。
學習這些類庫為我們提供了非常方便的工具,提高了編碼效率,就是記憶起來比較花費時間,多多使用,多多熟悉。