標籤:gen sys 匯入 ted val out china main ati
Java中必須瞭解的常用類一、封裝類
相信各位小夥伴們對基礎資料型別 (Elementary Data Type)都非常熟悉,例如 int、float、double、boolean、char 等。基礎資料型別 (Elementary Data Type)是不具備對象的特性的,比如基本類型不能調用方法、功能簡單。。。,為了讓基礎資料型別 (Elementary Data Type)也具備對象的特性, Java 為每個基礎資料型別 (Elementary Data Type)都提供了一個封裝類,這樣我們就可以像操作對象那樣來操作基礎資料型別 (Elementary Data Type)。
基本類型和封裝類之間的對應關係:
注意:有兩個封裝類的名稱比較特殊一個是Integer,另一個是Character,其他都是基本資料類首字母大寫。
封裝類主要提供了兩大類方法:
1. 將本類型和其他基本類型進行轉換的方法
2. 將字串和本類型及封裝類互相轉換的方法
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Java 中基本類型和封裝類之間的轉換
基本類型和封裝類之間經常需要互相轉換,以 Integer 為例(其他幾個封裝類的操作雷同哦):
1 Integer a=new Integer(3);//定義Integer封裝類對象,值為32 int b=a+5;//將對象和基本類型進行運算
在 JDK1.5 引入自動裝箱和拆箱的機制後,封裝類和基本類型之間的轉換就更加輕鬆便利了。
那什麼是裝箱和拆箱呢?我們分別來看下:
裝箱:把基本類型轉換成封裝類,使其具有對象的性質,又可分為手動裝箱和自動裝箱。
1 int i=10;//定一個int基礎資料型別 (Elementary Data Type)2 Integer x=new Integer(i);//手動裝箱3 Integer y=i;//自動裝箱
1 Double n=i;//類型不同不能自動裝箱2 Double m=new Double(i);//不同類型可以通過手動裝箱
拆箱:和裝箱相反,把封裝類對象轉換成基本類型的值,又可分為手動拆箱和自動拆箱。
1 Integer j=new Integer(8);//定義Integer封裝類對象,值為82 int n=j.intValue();//手動拆箱3 int m=j;//自動拆箱
1 double x=j.doubleValue();//不同類型手動拆箱2 double y=j;//不同類型可以自動拆箱
注意:類型不同不能自動裝箱,但是不同類型可以自動拆箱。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Java 中基本類型和字串之間的轉換
在程式開發中,我們經常需要在基礎資料型別 (Elementary Data Type)和字串之間進行轉換。
其中,基本類型轉換為字串有三種方法:
1. 使用封裝類的 toString() 方法
2. 使用String類的 valueOf() 方法
3. 用一個Null 字元串加上基本類型,得到的就是基本類型資料對應的字串
代碼如下:
1 //將基本類型轉化為字串2 int x=10;3 String str1=Integer.toString(x);//方法一4 String str2=String.valueOf(x);//方法二5 String str3=x+"";//方法三,本質利用系統自動轉換類型
再來看,將字符串轉換成基本類型有兩種方法:
1. 調用封裝類的 parseXxx 靜態方法
2. 調用封裝類的 valueOf() 方法轉換為基本類型的封裝類,會自動拆箱
代碼如下:
1 //將字串轉換為基本類型2 String str="8";3 int n=Integer.parseInt(str);//方法一4 int y=Integer.valueOf(str);//方法二
注意:字串轉換為基本類型裡如果字串包含其他字元,程式運行時將會拋出異常。所以在使用該方法時最好用try-catch語句捕獲並處理。
PS:其他基本類型與字串的相互轉化這裡不再一一列出,方法都類似。
二、Date 和 SimpleDateFormat 類
在程式開發中,經常需要處理日期和時間的相關資料,此時我們可以使用 java.util 包中的 Date 類。這個類最主要的作用就是擷取目前時間,我們來看下 Date 類的使用:
1 Date d=new Date();//使用預設的構造方法建立Date對象2 System.out.println(d);
使用 Date 類的預設無參構造方法建立出的對象就代表目前時間,我們可以直接輸出 Date 對象顯示當前的時間,顯示的結果如下:
其中, Thu 代表 星期四, Jul 代表 七月,06 代表 06 號, CST 代表 China Standard Time (中國標準時間,也就是北京時間,東八區)。
從上面的輸出結果中,我們發現,預設的時間格式不是很友好,與我們日常看到的日期格式不太一樣,如果想要按指定的格式進行顯示,如 2017-07-06 13:31:28 ,那該怎麼做呢?
此時就到了 java.text 包中的 SimpleDateFormat 類大顯身手的時候了!!可以使用 SimpleDateFormat 來對日期時間進行格式化,如可以將日期轉換為指定格式的文本,也可將文本轉換為日期。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1. 使用 format() 方法將日期轉換為指定格式的文本
1 //使用 format() 方法將日期轉換為指定格式的文本2 Date d=new Date();//使用預設的構造方法建立Date對象3 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定日期格式4 String today=sdf.format(d);5 System.out.println(today);
運行結果:
結果分析:
代碼中的 “yyyy-MM-dd HH:mm:ss” 為預定義字串, yyyy 表示四位年, MM 表示兩位月份, dd 表示兩位日期, HH 表示小時(使用24小時制), mm 表示分鐘, ss 表示秒,這樣就指定了轉換的目標格式,最後調用 format() 方法將時間轉換為指定的格式的字串。
2. 使用 parse() 方法將文本轉換為日期
1 //建立日期格式的字串 2 String day="2017年07月06日 13:42:10"; 3 //建立SimpleDateFormat對象,指定字串的日期格式 4 SimpleDateFormat sd=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); 5 //調用parse方法,將字串轉化為日期 6 Date date; 7 try { 8 date = sd.parse(day); 9 System.out.println(date);10 } catch (ParseException e) {11 // TODO Auto-generated catch block12 e.printStackTrace();13 }
運行結果:
結果分析:
代碼中的 “yyyy年MM月dd日 HH:mm:ss” 指定了字串的日期格式,調用 parse() 方法將文本轉換為日期。因為將字串轉換為Date類型可能會拋出異常,所以要用try-catch語句捕獲。
一定要注意哦:
1、 調用 SimpleDateFormat 對象的 parse() 方法時可能會出現轉換異常,即 ParseException ,因此需要進行異常處理。
2、 使用 Date 類時需要匯入 java.util 包,使用 SimpleDateFormat 時需要匯入 java.text 包。
三、Calendar 類的應用
Date 類最主要的作用就是獲得目前時間,同時這個類裡面也具有設定時間以及一些其他的功能,但是由於本身設計的問題,這些方法卻遭到眾多批評,不建議使用,更推薦使用 Calendar 類進行時間和日期的處理。
java.util.Calendar 類是一個抽象類別,可以通過調用 getInstance() 靜態方法擷取一個 Calendar 對象,此對象已由當前日期時間初始化,即預設代表目前時間,如 Calendar c = Calendar.getInstance();
那麼如何使用 Calendar 擷取年、月、日、時間等資訊呢?我們來看下面的代碼:
1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 Calendar c = Calendar.getInstance();//建立Calendar對象 4 int year = c.get(Calendar.YEAR);//擷取年 5 int month = c.get(Calendar.MONTH)+1;//擷取月份,0表示一月份 6 int day = c.get(Calendar.DAY_OF_MONTH);//擷取日期 7 int hour = c.get(Calendar.HOUR_OF_DAY);//擷取小時 8 int minute = c.get(Calendar.MINUTE);//擷取分鐘 9 int second = c.get(Calendar.SECOND);//擷取秒10 System.out.println("目前時間:"+year+"-"+month+"-"+day+"-"+hour+":"+minute+":"+second);11 12 }
運行結果:
結果分析:
調用 Calendar 類的 getInstance() 方法擷取一個執行個體,然後通過調用 get() 方法擷取日期時間資訊,參數為需要獲得的欄位的值, Calendar.Year 等為 Calendar 類中定義的靜態常量。
注意:其中有兩個特別的參數:DAY_OF_MONTH和HOUR_OF_DAY,千萬不要寫成DAY和HOUR了;MONTH擷取的月份,0表示一月。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Calendar 類提供了 getTime() 方法,用來擷取 Date 對象,完成 Calendar 和 Date 的轉換,還可通過 getTimeInMillis() 方法,擷取此 Calendar 的時間值,以毫秒為單位。如下所示:
1 Date date=c.getTime();//將Calendar對象轉換為Date對象2 Long time=c.getTimeInMillis();//擷取當前毫秒數3 System.out.println("目前時間:"+date);4 System.out.println("當前毫秒數"+time);
運行結果:
總結:
1.通過調用 getInstance() 靜態方法擷取一個 Calendar 對象---對象初始化
Calendar c = Calendar.getInstance();
2.通過調用 get() 方法擷取日期時間資訊
int month=c.get(Calendar.MONTH)+1;----0表示1月份
3.提供 getTime() 方法,用來擷取 Date 對象
Date date=c.getTime();----將Calender對象轉換為Date對象
4.通過 getTimeInMillis() 方法,擷取此 Calendar 的時間值
long time=c.getTimeInMillis();----擷取當前毫秒
四、使用 Math 類操作資料
Math 類位於 java.lang 包中,包含用於執行基本數學運算的方法, Math 類的所有方法都是靜態方法,所以使用該類中的方法時,可以直接使用類名.方法名,如: Math.round();
常用的方法:
下面用代碼來實現:
1 public static void main(String[] args) { 2 double a=12.81; 3 int b=(int)a;//強制類型轉換 4 System.out.println("強制類型轉換:"+b); 5 long c=Math.round(a);//調用round方法,進行四捨五入 6 System.out.println("四捨五入:"+c); 7 double d=Math.floor(a);//調用floor方法,返回小於參數的最大整數 8 System.out.println("floor方法:"+d); 9 double e=Math.ceil(a);//調用ceil方法,返回大於參數的最小整數10 System.out.println("ceil方法:"+e);11 double x=Math.random();//調用random方法,產生[0,1)之間的隨機數12 System.out.println("隨機數:"+x);13 int y=(int)(Math.random()*100);//產生[0,100)之間的隨機數14 System.out.println("[0,100)之間的隨機數:"+y);15 16 }
運行結果:
注意:要注意Math各個方法傳回值類型,可以用強制類型轉換來轉為自己想要的類型。
PS: Math 類還提供了許多其他方法,各位小夥伴們可以按需去API文檔尋找想要知道的方法。
Java 中必的常用類(很實用)