Java基礎Day07(Map Calender Date 包裝類 System類 異常)

1.Map

  • Map是集合容器,存放的元素有鍵與值兩部分組成,經過鍵能夠找到所對應的值,鍵和值必須是引用數據類型,鍵是惟一的,不能重複,沒有順序。
  • HashMap是Map的實現類.
  • Map的添加,刪除,查詢
//建立Map對象 
Map<String, String> map = new HashMa p<String,String>(); 
//給map中添加元素 
map.put("1", "Monday"); 
map.put("7", "Sunday"); 
System.out.println(map); 
//當給Map中添加元素,會返回key對應的原來的 value值,若key沒有對應的值,返回null System.out.println(map.put("1", "Mo n")); // Monday 
System.out.println(map); // {星期日=Su nday, 星期一=Mon}   根據指定的key獲取對應的value 
String en = map.get("1"); 
System.out.println(en); // Sunday 根據key刪除元素,會返回key對應的value值
String value = map.remove("1"); 
System.out.println(value); // Sunday 
System.out.println(map); // {1=Mon}
  • Map的遍歷
Map<String, String> map = new HashMa p<String,String>();
//給map中添加元素 map.put("鄧超", "孫儷"); map.put("李晨", "范冰冰"); map.put("劉德華", "柳巖"); //獲取Map中的全部key Set<String> keySet = map.keySe t(); for(String key : keySet){ System.out.println(map.get(ke y)) }

 

Calender

/*
public abstract class Calendar  extends Object  implements Serializable, Cloneable, Comparable<Calendar>   抽象類
 */
    //建立對象   Calendar calendar = Calendar.getInstance(); //get(int filed) //獲取年月日 時分秒信息 int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH)+1;//從0開始算起,最大11;0表明1月,11表明12月
     int date = calendar.get(Calendar.DATE);
     int hour = calendar.get(Calendar.HOUR);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);
        System.out.println(year+"年"+month+"月"+date+"日 "+hour+":"+minute+":"+second);  //2020年7月1日     11:14:46
        
     //指定字段增長值
     Calendar c = Calendar.getInstance();
     //修改當前時間爲3天后
     c.add(Calendar.DATE, 3);
     //修改當前時間爲5小時後
     c.add(Calendar.HOUR, 5);
     //轉換日期類型
        Date time = calendar.getTime();
        System.out.println(time);  // Wed Jul 01 11:16:10 CST 2020

        //設置時間爲2020年5月7日
        calendar.set(Calendar.YEAR, 2020);
        calendar.set(Calendar.MONTH, 5);
        calendar.set(Calendar.DATE, 7);
        int year2 = calendar.get(Calendar.YEAR);
        int month2= calendar.get(Calendar.MONTH);
        int date2 = calendar.get(Calendar.DATE);
        System.out.println(year2+"年"+month2+"月"+date2+"日");//2020年5月7日

      //使用日曆計算平年閏年更爲方便
      Calendar c = Calendar.getInstance();
      c.set(2000, 2, 1);
      c.add(Calendar.DATE, -1);
      int a = c.get(Calendar.DATE);
      System.out.println(a);
 
 
 
 
 
 

  

Date

構造函數  :public Date()

分配一個 Date對象並對其進行初始化,以便它表示分配的時間,測量到最近的毫秒。 System.currentTimeMillis();
Date date1 = new Date();
System.out.println(date1);//當前日期 
Date date2 = new Date(12354356000000L);
System.out.println(date2);//指定日期
  //日期和毫秒的轉換
 
  
  Date date = new Date();
 
  
  long time = date.getTime();
 
  
  System.out.println(time);//1499169262875

  

DateFormat

   格式化日期類,一般用於日期和String的轉換
Date date2 = new Date(); //DateFormat抽象類,SimpleDateFormat是DateF ormat實現類 
DateFormat df = new SimpleDateFormat("yyy y-MM-dd E HH:mm:ss a"); 
String str = df.format(date2); 
System.out.println(str);//2017-07-04 星期 二 20:04:43 下午

 

 

   日期字符串之間的抓換
Date date = new Date(12354356000000L); 
DateFormat df = new SimpleDateFormat(「yyy y年MM月dd日」);
String str = df.format(date); 
String str = 」2020年12月11日」; 
DateFormat df = new SimpleDateFormat(「yyy y年MM月dd日」); 
Date date = df.parse(str);

System

    public static void main(String[] args) {
        // 獲取當前時間的毫秒值
        System.currentTimeMillis();
       // 結束當前程序
        System.exit(0);
      // 數組的拷貝

        System.currentTimeMillis();//取當前系統時間與1970年01月01日00:00點 之間的毫秒差值
        System.exit(0);//結束程序,一般傳入0記爲正常狀 態,其餘爲異常狀態
        int[] src = new int[]{1,2,3,4,5};
        int[] dest = new int[]{6,7,8,9,10}; //源數組,源數組的起始位置,目標數組,目標數組的起 始位置,目標數組的長度
        System.arraycopy( src, 0, dest, 0, 3); //src數組元素[1,2,3,4,5] //dest數組元素[1,2,3,9,10]
    }

 

Math

  • abs方法,結果都爲正數
  • double d1 = Math.abs(-5); // d1的值爲5 
    double d2 = Math.abs(5); // d2的值爲5
    

      

  • ceil方法,結果爲比參數值大的最小整數的double值
  • double d1 = Math.ceil(3.3); //d1的值爲 4.0 
    double d2 = Math.ceil(-3.3); //d2的值爲 -3.0 
    double d3 = Math.ceil(5.1); // d3的值爲 6.0
  • floor方法,結果爲比參數值小的最大整數的double值
  • double d1 = Math.floor(3.3); //d1的值爲3.0 
    double d2 = Math.floor(-3.3); //d2的值 爲-4.0 
    double d3 = Math.floor(5.1); //d3的值爲 5.0
    

     

  • max方法,返回兩個參數值中較大的值
  • double d1 = Math.max(3.3, 5.5); //d1的值爲 5.5 
    double d2 = Math.max(-3.3, -5.5); //d2的 值爲-3.3
    

     

  • min方法,返回兩個參數值中較小的值
  • double d1 = Math.min(3.3, 5.5); //d1的值爲 3.3 
    double d2 = Math.max(-3.3, -5.5); //d2的 值爲-5.5
    

     

  • pow方法,返回第一個參數的第二個參數次冪的值
  • double d1 = Math.pow(2.0, 3.0); //d1的值爲 8.0
    double d2 = Math.pow(3.0, 3.0); //d2的值爲 27.0
    

     

  • round方法,返回參數值四捨五入的結果
  • double d1 = Math.round(5.5); //d1的值爲6.0 
    double d2 = Math.round(5.4); //d2的值爲5.0
    

     

  • random方法,產生一個大於等於0.0且小於1.0的double小數
  • double d1 = Math.random();
    //獲得的 是[0,1)的小數 
    //鎖定範圍獲取 a-b整數 
    int a = (int)(Math.random()*(b-a+1))+a
    

     

包裝類

  包裝類的做用實現基本數據類型和字符串之間的轉換字符串,基本數據類型,
  包裝類型轉換字符串轉換基本數據類型須要調用包裝類 包裝類.parse基本數據類型("字符串");
  int a = Integer.parseInt("12");
 
  基本數據類型轉換字符串 String str = ""+基本數據類型;
  或者 String str =String.valueOf(34);
  基本數據類型轉換包裝類型: Integer obj =Interger.valueOf(3);
  包裝類型轉換基本數據類型: int a =obj.intValue();
  jdk1.5之後系統提供自動裝箱:int和integer能夠自動轉換
 
 

大數據運算

BigInteger

大數據整數的加,減,乘,除

//大數據封裝爲BigInteger對象 
BigInteger big1 = new BigInteger("12345 678909876543210"); 
BigInteger big2 = new BigInteger("98765 432101234567890"); //add實現加法運算 
BigInteger bigAdd = big1.add(big2); System.out.println(bigAdd); //subtract實現減法運算
BigInteger bigSub = big1.subtract(big 2); System.out.println(bigSub); //multiply實現乘法運算 BigInteger bigMul = big1.multiply(big 2);System.out.println(bigMul); //divide實現除法運算 BigInteger bigDiv = big2.divide(big1); System.out.println(bigDiv);

 

BigDecimal

有些時候操做小數的,會出現精度問題如

System.out.println(0.09+0.01);//0.0999999 9999999999 
System.out.println(1.201*100);//120.10000 000000001 //大數據封裝爲BigDecimal對象 BigDecimal big1 = new BigDecimal("0.09"); BigDecimal big2 = new BigDecimal("0.01"); //add實現加法運算 BigDecimal bigAdd = big1.add(big2); System.out.println(bigAdd ); BigDecimal big3 = new BigDecimal("1.0"); BigDecimal big4 = new BigDecimal("0.32"); //subtract實現減法運算 BigDecimal bigSub = big3.subtract(big4); System.out.println(bigSub); BigDecimal big5 = new BigDecimal("1.10 5"); BigDecimal big6 = new BigDecimal("100"); //multiply實現乘法運算 BigDecimal bigMul = big5.multiply(big6); System.out.println(bigMul); //divide實現除法 BigDecimal bigDiv = big5.divide(big6,2,Bi gDecimal.ROUND_UP);

 

Arrays

使用二分查找搜索指定int類型數組
int[] arr = {1,3,4,5,6}; 
int index = Arrays.binarySearch(arr, 4); //index的值爲2 
int index2= Arrasy.binarySearch(arr, 2); //index2的值爲-1
數組升序排序
int[] arr = {1,5,9,3,7};
Arrays.sort( arr );
將數組的內容以字符串形式呈現
int[] arr = {1,5,9,3,7}; String str = Arrays.toString(arr); // str 的值爲[1, 3, 5, 7, 9]

  

 

異常

  若是產生異常的地方沒有對他處理,那麼會向上拋出,拋向調用者,若是調用者沒有對異常做出處理,會給jvm處理,jvm會找到本身內部能不能識別到該異常信息對應的類,若是找到了,會構建一個異常的對象,會把異常產生的緣由,異常產生的位置,異常產生的內容封裝進該對象中在控制檯顯現出來,而且終止程序。html

  throwable類中java

    public String getMessage()返回此throwable的詳細消息字符串。在Throwable類的下的子類Error異常狀況是沒法解決的,屬於硬傷,做爲程序員可以解決的是Exception這種類型的異常狀況。程序員

Exception:數組

  編譯期異常:經過使用集成開發工具在編寫程序的時候,就出現的異常問題,若是不處理,程序沒法繼進行,須要程序員馬上對異常作出處理,不然沒法編寫。dom

  運行期異常:在編譯以後,程序在運行過程當中產生的異常問題,JM把異常信息拋出,通常是因爲邏輯錯誤致使的異常狀況,經過優化你的代碼能夠解決掉的jvm

編譯期異常:除了RunTimeException異常以外,其他的都是編譯期異常。ide

運行期異常:函數

  算術異常:Ari thmeticException工具

  空指針異常:Null PointerException開發工具

  越界異常:IndexOutOfBoundsException

  類轉換異常:ClassCastException

 

相關文章
相關標籤/搜索