Java之異常處理與工具類
異常處理
① Error(錯誤)
Error(錯誤)
一般指比較嚴重的問題,不做針對性處理,無法挽救;
OutOfMemoryError 記憶體溢位
② Exception (異常)
Exception(異常)
checked Exception(受檢異常)
強制在編譯期對可能出現的問題做一個預處理
unchecked Exception(非受檢異常)
執行之後才能觸發
try catch (程式碼異常捕獲)
try(嘗試執行的程式碼)catch(捕獲到的異常物件)(對異常的處理方式)
finally(不論是否有異常,都將執行到的程式碼)
多異常處理,可以1個try,多個catch;catch裡面範圍大的放後面
Java中常見的異常 :
java.lang.NullPointerException SecturityException
IOException java.lang.classnotfoundexception
java.lang.arrayindexoutofboundsexception
java.lang.illegalargumentexception FileNotFoundException
NoSuchMethodException java.lang.OutOfMemoryError
java.lang.ClassNotFoundException
java.lang.IllegalArgumentException
工具類
① Array(排序)
array 的排序預設是升序排序
int [] num = {1,2,3,4,5,6}; //排序 Arrays.sort(num); //列印 System.out.println(Arrays.toString(num)); //複製 Arrays.copyOf(num,4); //填充 Arrays.fill(num,666); //比較 Arrays.equals(xx,xx);
② StringBuffer/StringBuilder
StringBuffer/StringBuilder 的應用只在於字串大量的拼接或者修改操作時使用
StringBuffer 速度慢 安全
StringBuilder 速度快 不安全
public class Demo { public static void main(String[] args) { StringBuffer stb=new StringBuffer("hello"); String str=stb.toString(); System.out.println(str); //拼接 stb.append('A'); stb.append(12); stb.append("xx"); System.out.println(stb); //刪除 stb.delete(1, 4); //(刪頭不刪尾) System.out.println(stb); //插入 stb.insert(3, 999); System.out.println(stb); //替換 stb.replace(1, 3,"dd"); //翻轉 stb.reverse(); //擷取 stb.substring(2, 4); } }
③ Random(隨機)
public class Demo2 { public static void main(String[] args) { Random ran=new Random(); for(int i=0;i<20;i++){ System.out.println(ran.nextBoolean()); System.out.println(ran.nextDouble()); System.out.println(ran.nextInt()); //0-9,不包括10 System.out.println(ran.nextInt(10)); System.out.println("-----------------------"); } //Math.Random()函式 //呼叫這個Math.Random()函式能夠返回帶正號的double值,該值大於等於0.0且小於1.0,即取值範圍是[0.0,1.0)的左閉右開區間, //返回值是一個偽隨機選擇的數,在該範圍內(近似)均勻分佈。 for(int i=0,i<10,i++){ int num=(int)(Math.random()*3);[0,3) System.out.println(num); } } }
④ Math
public class Demo { public static void main(String[]args) { //絕對值 System.out.println(Math.abs(-4)); // 4 //最大值 System.out.println(Math.max(5,94)); // 94 //平方根 System.out.println(Math.sqrt(9)); // 3 //立方根 System.out.println(Math.cbrt(27)); // 3 //向上取整 System.out.println(Math.ceil(-6.3)); // -6 //向下取整 System.out.println(Math.floor(-6.8)); //-7 //四捨五入 System.out.println(Math.round(-6.4)); //-6 //π System.out.println(Math.PI); //e System.out.println(Math.E); System.out.println(Math.pow(3, 2)); //3的平方 }
⑤ Date
public class Demo { public static void main(String[]args) throws ParseException { Date date = new Date(); System.out.println(date); date.setTime(0); System.out.println(date); // 修改日期的顯示格式2015-10-25 17:20:21 Date date1 = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String str = df.format(date1); System.out.println(str); // 從一個字串中解析出一個Date物件 String time = "1999-12-21 20:62:10"; SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d = sf.parse(time); String s1 = df.format(d); System.out.println(s1); } }