常用類包括:
Object 饵沧、String 锨络、StringBuffer、StringBuilder捷泞、StringUtils足删、
System、Runtime 锁右、Math 、Date讶泰、Calendar咏瑟、File、Random ...
1.Object
Class Object是類Object結(jié)構(gòu)的根痪署。 每個(gè)班都有Object作為超類码泞。 所有對(duì)象(包括數(shù)組)都實(shí)現(xiàn)了這個(gè)類的方法。
1.equals():比較兩個(gè)對(duì)象是否相等
2.getClass():獲取任意對(duì)象運(yùn)行時(shí)的所屬字節(jié)碼文件對(duì)象
3.hashCode():返回對(duì)象的哈希碼值
4.toString():將對(duì)象變成字符串 默認(rèn)返回的格式: 類名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode()) 為了對(duì)象對(duì)應(yīng)的字符串內(nèi)容有意義 可以通過(guò)復(fù)寫(xiě) 建立該類對(duì)象自己特有的字符串表現(xiàn)形式
5.finalize():當(dāng)垃圾收集確定不再有對(duì)該對(duì)象的引用時(shí)狼犯,垃圾收集器在對(duì)象上調(diào)用該對(duì)象
6.notify():喚醒正在睡眠的線程
7.notifyAll():喚醒所有睡眠的線程
8.wait():等待線程
2.String
String類代表字符串余寥。 Java程序中的所有字符串文字(例如"abc" )都被實(shí)現(xiàn)為此類的實(shí)例。
字符串不變; 它們的值在創(chuàng)建后不能被更改悯森。 字符串緩沖區(qū)支持可變字符串宋舷。 因?yàn)镾tring對(duì)象是不可變的,它們可以被共享
3.StringBuffer瓢姻、StringBuilder
StringBuffer和StringBuilder都是可變字符串祝蝠,區(qū)別在于StringBuffer是線程安全的而StringBuilder是不安全的但是效率比StringBuffer要高
4.StringUtils
StringUtils是操作String的工具類具體方法:
1.abbreviate():縮寫(xiě)一段文字
StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
2.isBlank()、isEmpty():判斷是否為空
區(qū)別isBlank 如果當(dāng)前文字中全是空格或者是null 返回true 如果里面存在文字返回flase。isEmpty如果存在多個(gè)空格返回flase
String str1 = " ";
//true
boolean blank = StringUtils.isBlank(str1);
//false
boolean empty = StringUtils.isEmpty(str1);
3.trim()绎狭、trimToEmpty()细溅、stripToNull():
去除空格
4.join():用于關(guān)聯(lián)列表String
List<String> strings = new ArrayList<>();
strings.add("1");
strings.add("2");
strings.add("3");
//結(jié)果1-2-3
System.out.println(StringUtils.join(strings,"-"));
5.System(系統(tǒng)類)
System類包含幾個(gè)有用的類字段和方法。 它不能被實(shí)例化儡嘶。
System類提供的System包括標(biāo)準(zhǔn)輸入喇聊,標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出流; 訪問(wèn)外部定義的屬性和環(huán)境變量; 一種加載文件和庫(kù)的方法; 以及用于快速?gòu)?fù)制陣列的一部分的實(shí)用方法。
1.gc(): 通知系統(tǒng)回收垃圾
2.exit():終止線程
3.currentTimeMillis():獲得當(dāng)前系統(tǒng)毫秒值
4.in蹦狂、out誓篱、error() 用于打印輸出
6.Runtime(運(yùn)行時(shí)環(huán)境類)
java.lang.Runtime
類中沒(méi)有構(gòu)造方法 不能創(chuàng)建對(duì)象
但是有非靜態(tài)方法 說(shuō)明該類中應(yīng)該定義好了對(duì)象 并可以通過(guò)一個(gè)static方法獲取這個(gè)對(duì)象 用這個(gè)對(duì)象來(lái)調(diào)用非靜態(tài)方法 這個(gè)方法就是 static Runtime getRuntime(); (單例設(shè)計(jì)模式)
Runtime runtime = Runtime.getRuntime();
//打開(kāi)記事本
runtime.exec("C:\\Windows\\notepad.exe");
//虛擬機(jī)最大存儲(chǔ)空間
runtime.maxMemory();
//虛擬機(jī)空閑存儲(chǔ)空間大小
runtime.freeMemory();
//虛擬機(jī)內(nèi)存總量
runtime.totalMemory();
7.Math(數(shù)學(xué)算數(shù)類)
//求絕對(duì)值
Math.abs(10.1);
//向上取整
Math.ceil(10.6);
//向下取整
Math.floor(10.4);
//最大值
Math.max(2, 5);
//最小值
Math.min(1, 7);
//隨機(jī)數(shù)
Math.random();
8.Date(時(shí)間類)
1.after():測(cè)試此日期是否在指定日期之后。
2.before():測(cè)試此日期是否在指定日期之前鸥咖。
3.getTime():獲得當(dāng)前時(shí)間毫秒值
4.setTime():設(shè)置毫秒值
9.Calendar(日歷類)
從JDK1.1版本開(kāi)始燕鸽,在處理日期和時(shí)間時(shí),系統(tǒng)推薦使用Calendar類進(jìn)行實(shí)現(xiàn)(Date的一些方法都過(guò)時(shí)了)啼辣。在設(shè)計(jì)上啊研,Calendar類的功能要比Date類強(qiáng)大很多,而且在實(shí)現(xiàn)方式上也比Date類要復(fù)雜一些
1.add():根據(jù)日歷的規(guī)則鸥拧,將指定的時(shí)間量添加或減去給定的日歷字段
//當(dāng)前時(shí)間是2019-04-20
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE,-1);
//獲得昨天的時(shí)間是 2019-04-19
System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));
2.set():設(shè)置日歷字段中的值
//當(dāng)前時(shí)間是2019-04-20
Calendar cal = Calendar.getInstance();
//設(shè)置月份為11 月 MONTH 0~11
cal.set(Calendar.MONTH,10);
//設(shè)置時(shí)間為2019-11-11
cal.set(2019,10,11);
3.get():獲得指定的年月日時(shí)分秒
//當(dāng)前時(shí)間是2019-04-20
Calendar cal = Calendar.getInstance();
//獲得年
cal.get(Calendar.YEAR);
//獲得月
cal.get(Calendar.MARCH);
//獲得天
cal.get(Calendar.DATE);
//獲得小時(shí)
cal.get(Calendar.HOUR);
4.getTime():轉(zhuǎn)換成date對(duì)象
5.setTime():設(shè)置當(dāng)前時(shí)間
6.getMaximum()党远、getActualMaximum():getActualMaximum 返回實(shí)際的最大數(shù)值,getMaximum 返回的是可能的最大數(shù)值富弦。
//當(dāng)前時(shí)間是2019-04-20
Calendar cal = Calendar.getInstance();
//獲得有可能的最大值 31
cal.getMaximum(Calendar.DATE);
//獲得當(dāng)月的最大天數(shù) 30
cal.getActualMaximum(Calendar.DATE);
練習(xí)
//當(dāng)前時(shí)間是2019-04-20
Calendar cal = Calendar.getInstance();
//獲得后10天
/*for (int i = 0; i < 12; i++) {
cal.add(Calendar.DATE,+1);
System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));
}*/
//獲得當(dāng)月最大天數(shù)
int actualMaximum = cal.getActualMaximum(Calendar.DATE);
System.out.println(actualMaximum);
//設(shè)置日歷當(dāng)月的從第一個(gè)月開(kāi)始
cal.set(Calendar.DATE,0);
for (int i = 1; i <= actualMaximum; i++) {
cal.add(Calendar.DATE,+1);
System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));
}
10.Random(隨機(jī)數(shù))
Random random = new Random();
//隨機(jī)Double
random.nextDouble();
//隨機(jī)int
random.nextInt();
//隨機(jī)long
random.nextLong();