java基礎 第十二章(異常處理、工具類、集合)
一、異常處理
1.兩種異常:
(1)程序員自身問題(運行時異常)
(2)外界問題(可控異常)
2.兩種異常的詳細說明
(1)運行時異常
當程序發生運行時異常時,程序會中斷程序。
例:p1為對象;
p1 p = new p1();
p = null;
p.sayHello();
//這時就會報空指針異常 NullPointerException();
//以上語句就等同於
throw new NullPointerException();
運行時異常的種類:
throw new NullPointerException(); //空指針異常
throw new ArrayIndexOutOfBoundsException(); //數組越界異常
throw new ArrithmeticException(); //運算異常
throw new ClassCastException(); //類型轉換異常
throw new SqlException(); //對數據庫操作異常
(2)可控異常
當程序發生異常時,程序不會中斷。
拋出異常的格式:
try{
//可以有多個異常,但如果不是catch(Exception e),就要寫多個catch
}catch(Exception){
}finally{
//無論程序中出沒出現異常,finally都會執行。
}
例:try{
class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("abc");
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("哈哈");
}
3.異常樹
(1)throw 與 throws 的區別:
throw: 用在代碼塊中,必須拋出異常,無意義。
throws:用在方法後。
(2)例:
class p1{
public void connDataBase() throws Exception{
class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306");
}
}
public class Main{
public static void main(String[] args){
p1 p = new p1();
try{
p.connDataBase();
}catch(Exception e){
e.printStackTrace();
}
}
}
二、工具類
1.Math函數
(1)abs(); //絕對值
例:Math.abs(-1); // 1
(2)round(); //四舍五入
例:Long a = Math.round(8.78); //9
Integer b = Math.round(8.78f); //9
(3)ceil(); //向上取整
(4)floor(); //向下取整
(5)pow( , ); //求平方
例:Double a = pow(2.0 , 3.0); //8
(6)sqrt(); //開平方
(7)random(); //隨機數 [0,1)
2.Date函數
(1)例:Date d = new Date();
SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd");
(2)日歷類
Calendar c = Calendar.getInstance();
set()方法:
c.set(Calendar.YEAR,2017);
c.set(Calendar.MONTH,0);
get()方法:
int date = c.get(Calendar.YEAR);
int date1 = c.get(Calendar.DATE);
getTime()方法:
//得到當前的時間
例:Date d = c.getTime();
SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String m = fm.format(d);
三、集合
可以放不同的數據類型,變長。
List(父類)——ArrayList(子類),LinkedList(子類)
1.ArrayList
(1)用於經常遍歷,查找的程序塊中。
(2)放置順序,就是存儲順序,允許放相同的對象。
(3)格式:ArrayList<類型> list = new ArrayList<類型>();
(4)方法:
add(); //添加方法
add(位置, 內容); //插入內容
addAll(); //將另一對象合並
remove(); //刪除
get(); //得到內容
(5)例:
ArrayList list = new ArrayList();
list.add(20);
list.add("hello world");
2.LinkList
格式:LinkedList<類型> list = new LinkedList<類型>();
(1)做大量添加,刪除操作。
(2)放置順序就是存儲順序,可以放相同對象。
(3)方法和ArrayList 相同,但比它多
addFirst(); //在開頭插入
addLast(); //在末尾插入
3.遍歷集合
(1)for循環遍歷
例:for(int i = 0 ; i < list..size(); i++){
String ob = list.get(i);
System.out.println(ob);
}
(2)叠代遍歷
例:Iterator iter = list.iterator();
while(iter.hasNext()){
String ob = iter.next();
System.out.println(ob);
}
(3)for each遍歷
例:for(String ob : list){
System.out.println(ob);
}
set(父類)—— HashSet(子類),TreeSet(子類)
1.HashSet
(1)存儲順序,不是放置順序。
(2)不能放相同的對象。
(3)格式:HashSet<類型> set = new HashSet<類型>();
(4)方法:沒有add(位置,內容);
沒有get();
其余和ArrayList,LinkedList一樣。
(5)遍歷:沒有for()遍歷,其余同ArrayList,LinkedList。
2.TreeSet
(1)字典順序存儲(升序)。
(2)不能放相同對象。
(3)格式:TreeSet<類型> set = new TreeSet<類型>();
(4)方法:同HashSet。
(5)遍歷:同HashSet。
TreeSet設置排序
寫一個規則,創建類,添加接口compare<對象>,書寫規則。
例:compare c = new compare();
TreeSet set = new TreeSet(c);
書寫判斷是否是同一對象規則
重寫hashcode(), equals() 方法
步驟:
類中右擊 ——> source ——> override/…… ——> equals()/hashcode()
hashCode(){
return 1;
}
equals(){
if(判斷規則){
return true;
}
}
java基礎 第十二章(異常處理、工具類、集合)