1. 程式人生 > 實用技巧 >Java中常用類和方法(Number&Math)

Java中常用類和方法(Number&Math)

Java中常用類和方法(Number&Math)

包裝類

在實際開發過程中,我們經常會遇到需要使用物件,而不是內建資料型別的情形。為了解決這個問題,Java 語言為每一個內建資料型別提供了對應的包裝類。

基本資料型別 byte short int long float double char boolean
包裝類 Byte Short Integer Long Float Double Character Boolean

裝箱和拆箱

裝箱:自動將基本資料型別轉換成包裝器型別。

Integer a = 128;  // 裝箱,相當於 Integer.valueOf(128);

拆箱:自動將包裝器型別轉換為基本資料型別。

int t = a; //拆箱,相當於 a.intValue() 

方法

​ toString() :將數字以字串形式返回

String s1 = Byte.toString((byte)1);

​ XXXValue() : 將包裝類物件轉換成基本型別資料

Byte b1 = 1;  
byte b2 = b1.byteValue(); //拆箱

​ ValueOf() : 將基本型別資料轉換成包裝類

Integer intvalue = Integer.valueOf(123);

​ parseXXX() : 包裝類的靜態方法 - 字串轉數字(Character除外)

int a = Integer.parseInt("111");
boolean b = Boolean.parseBoolean("true");

Number類

floor直接取其含義,也就是“地板”,地板在腳下,即向下取整

ceil****是ceiling的縮寫,也就是“天花板”,天花板在頭頂上,即向上取整**。

round()的四捨五入取整。將傳入的數字加上+0.5後再向下取整

double d = 100.675;
float f = -90;

System.out.println(Math.floor(d));	//100.0
System.out.println(Math.floor(f));	//-90.0

System.out.println(Math.ceil(d));	//101.0
System.out.println(Math.ceil(f));	//-90.0

System.out.println(Math.round(d));	//101.0

Random類

此類的例項用於生成為偽隨機數。

可以傳入引數設定種子數,相同種子數的Random物件,相同種子數生成的隨機數字是完全相同的。

Random random = new Random();
random.setSeed(50); //設定種子數
for (int i = 0; i < 10; i++) {
    System.out.print(random.nextInt(10) + "-");
}
Random  random2 = new Random(50); //設定相同種子數
for (int i = 0; i < 10; i++) {
    System.out.print(random2.nextInt(10) + "-");
}

String類

length():字串長度

equals():比較內容

equalsIgnoreCase():忽略大小寫比較內容

toLowerCase():轉換為小寫

toUpperCase():轉換為大寫

concat():拼接字串

indexOf():查詢字元第一個出現的位置

lastIndexOf():查詢最後一個出現的位置

subString():擷取字串,包前不包後

trim():去除前後的空格

startsWith():判斷是否以某個字串開頭

endsWith():判斷是否以某個字串結尾

split():分割字串為String陣列

replace():替換字串

replaceAll():可以支援正則表示式替換字串

Runtime類(不能直接new物件)

Runtime.getRuntime() - 獲取一個Runtime例項 new一個Runtime
方法:
mammary() - 實體記憶體
totalMemory() - jvm總記憶體
freeMemory() - 空閒記憶體
exec() 執行可執行檔案
gc() 呼叫垃圾回收機制 但不是立即呼叫
exit() 退出jvm虛擬機器

System類

表示系統類,可以獲取一些當前計算機的一些資訊,比如作業系統版本,jdk版本等

getProperties() - 獲取當前計算機相關的資訊集合,是一個Properties物件

//獲取當前計算機的一系列資訊
Properties properties = System.getProperties();

System.out.println(properties.getProperty("java.version"));
System.out.println(properties.getProperty("user.name"));
System.out.println(properties.getProperty("os.name"));
System.out.println(properties.getProperty("os.version"));

Date日期類

Date日期類,用於獲取時間

Date()無參構造獲取當前系統時間

Date(long time);也可以根據傳入的毫秒數指定一個時間

Calender日曆類

日曆類:跟Date類功能相似,但是很多方法目前是推薦使用

Calendar calendar = Calendar.getInstance();
System.out.println("一個月中的第幾天:" + calendar.DAY_OF_MONTH);
System.out.println("一週中的第幾天:" + calendar.DAY_OF_WEEK);
System.out.println("一年中的第幾天:" + calendar.DAY_OF_YEAR);
System.out.println("一天中的小時數:" + calendar.HOUR_OF_DAY);

SimpleDateFormat類

格式化日期類。

引數("yyyy / MM / dd HH : mm : ss") 引數可自定義,但字元不能改變

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(new Date())); //2020/07/11 17:11:33

StringBuffer和StringBuilder類

當對字串進行修改的時候,需要使用 StringBuffer 和 StringBuilder類。

和 String 類不同的是,StringBuffer 和 StringBuilder類的物件能夠被多次的修改,並且不產生新的未使用物件。

StringBuffer:執行緒安全

StringBuilder:執行緒不安全(不能同步訪問),但是速度更快

StringBuffer stringBuffer = new StringBuffer("Java:");
stringBuffer.append("Hello");
stringBuffer.append("World!");
System.out.println(stringBuffer);  //Java:HelloWorld!