1. 程式人生 > >Java之異常處理與工具類

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);
   }
}