java中必須知道的常用類


 1、Java的包裝類

  基本數據類型我們都很熟悉,例如:int、float、double、boolean、char等,基本數據類型不具備對象的特征,不能調用方法,一般能實現的功能比較簡單,為了讓基本數據類型也具備對象的特性,Java為每個數據類型都提供了一個包裝類,這樣我們就可以像操作對象一樣,操作這些基本數據類型了

  常見的包裝類和基本類型對應關系如下:

 

  包裝類主要提供了兩類方法:

  1、進行多個類型之間的轉換

  2、將字符串和本類型及包裝類相互轉換

  比如下面代碼:

1 int i = 2;
2 Integer m = new Integer(5);
3 Integer n = new Integer("8");

  第一行是用基本類型定義了整型變量i,第二行是利用int包裝類定義了int對象m,雖然賦值為整型的5,但是現在會將基本類型轉換為包裝類中的5

  第三行初始化值為字符串類型的"8",但是會被包裝類轉換成整數類型,這就是包裝類的基本使用方法

  每個包裝類都可以和其他類進行轉換,比如Integer包裝類,轉換的對應關系如下:

  

根據轉換的對應關系,可以寫一個簡單的實例如下:

復制代碼
 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3  
 4          int score1 = 86; 
 5          
 6          // 創建Integer包裝類對象,表示變量score1的值
 7          Integer score2=new Integer(score1);
 8          
 9          // 將Integer包裝類轉換為double類型
10          double score3=score2.doubleValue();
11          
12          // 將Integer包裝類轉換為float類型
13          float score4=score2.floatValue();
14          
15          // 將Integer包裝類轉換為int類型
16          int score5 =score2.intValue();
17  
18          System.out.println("Integer包裝類:" + score2);
19          System.out.println("double類型:" + score3);
20          System.out.println("float類型:" + score4);
21          System.out.println("int類型:" + score5);
22      }
23  }
復制代碼

通過這個簡單的包裝類轉換程序,可以看出包裝類轉換為各種基本數據類型也是很方便的

那么基本類型怎么轉換為包裝類的對象呢?其實前面三行代碼已經體現了,只不過不太完全,基本類型轉換為包裝類可以理解為一個裝箱的過程,裝箱有兩種方式:手動裝箱和自動裝箱,那么同理包裝類轉換為基本類型叫做拆箱,同樣分為:手動拆箱和自動拆箱,上面的例子就是一個手動拆箱的例子,

那么其中自動裝箱和自動拆箱,都是編譯器根據數據類型自動完成了轉換,簡單的代碼如下:

復制代碼
 1 public class HelloWorld {
 2      public static void main(String[] args) {
 3          double a = 91.5;
 4          
 5           // double類型手動裝箱
 6          Double b = new Double(a);    
 7          
 8          // double類型自動裝箱
 9          Double c = a;  
10  
11          System.out.println("裝箱后的結果為:" + b + "和" + c);
12   
13          Double d = new Double(87.0);
14          
15          // Double包裝類對象手動拆箱
16          double e = d.doubleValue();
17          
18          //Double包裝類對象自動拆箱
19          double f = d;
20          
21           System.out.println("拆箱后的結果為:" + e + "和" + f);
22      }
23  }
復制代碼

例子很簡單,對每一個數據類型分別完成了自動和手動兩個操作,所以b和c的值是一樣的,e和f的值是一樣的

除了基本數據類型的包裝轉換之外,基本類型和字符串之間也可以進行轉換

比如一個基本類型:int a = 30;有3中方式轉換為字符串對象:

  1、使用包裝類的toString方法,String str1 = Integer.toString(a);

  2、使用String類的valueOf方法,String str2 = String.valueOf(a);

  3、用一個空字符串加上基本類型,系統會將基本類型轉換為字符串類型,String str3 = a + "";

反過來,定義:String str = "18";將一個字符串類型轉換為基本類型有以下兩種方法:

  1、調用包裝類的parseXxx靜態方法,int b = Integer.parseInt(str);

  2、調用包裝類的valueOf方法,完成自動拆箱,int c = Integer.valueOf(str);

其他類型轉換也是一樣,替換里面的類型即可,下面是一個簡單的例子:

復制代碼
 1 public class HelloWorld {
 2      public static void main(String[] args) {
 3          
 4          double m = 78.5;
 5          //將基本類型轉換為字符串
 6          String str1 = Double.toString(m);
 7          
 8          System.out.println("m 轉換為String型后與整數20的求和結果為: "+(str1+20));
 9          
10          String str = "180.20";
11          // 將字符串轉換為基本類型
12          Double a = Double.valueOf(str);
13      
14          System.out.println("str 轉換為double型后與整數20的求和結果為: "+(a+20));
15      }
16  }
復制代碼

這個例子實現了兩次轉換,所以str1+20應該輸出:78.520,a+20應該輸出:200.20,前者結果是字符串類型,后者結果是基本的浮點數類型

  2、Java日期時間處理

  程序開發中,時間處理必不可少,這些內容相對簡單一些,會使用一些固定的類即可

  首先,我們可以使用java.util包中的Date類來獲取時間,方法如下:

1 Date d = new Date();
2 System.out.println(d);

這樣是最簡單的方法了,但是輸出格式可能不太適合我們:Mon Sep 21 21:46:13 CST 2015

所以我們需要進行簡單的修飾,那么這時需要java.text包中的SimpleDateFormat類中的format方法對文本進行格式化,代碼如下:

1 Date d = new Date();
2 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
3 String today = sdf.format(d);
4 System.out.println(today);

這樣就輸出了我們常用的時間:2015-09-21 21:51:39,另外格式我們也可以按照我們的需要定義

反過來呢,我們還可以把文本變成默認的時間格式,這用到了SimpleDateFormat類中的parse方法,但是這個方法可能會出現異常,所以需要java.text中的異常類ParseException類進行異常處理,看一個小實例:

復制代碼
 1 import java.text.ParseException;
 2 import java.text.SimpleDateFormat;
 3 import java.util.Date;
 4  
 5 public class HelloWorld {
 6      
 7      public static void main(String[] args) throws ParseException {
 8          
 9          // 使用format()方法將日期轉換為指定格式的文本
10          SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
11          SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
12          SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
13          
14          // 創建Date對象,表示當前時間
15          Date now = new Date();
16          
17          // 調用format()方法,將日期轉換為字符串並輸出
18          System.out.println(sdf1.format(now));
19          System.out.println(sdf2.format(now));
20          System.out.println(sdf3.format(now));
21  
22          // 使用parse()方法將文本轉換為日期
23          String d = "2015-9-21 21:56:36";
24          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
25          
26           // 調用parse()方法,將字符串轉換為日期
27          Date date = sdf.parse(d);
28          
29          System.out.println(date);
30      }
31  }
復制代碼

例子很簡單,實現了時間格式化,文本到日期的轉換

另外在java.util包中還有一個時間處理的Calendar類,因為Date類中的本身的設計方法,遭到了眾多批評,所以推薦使用Calendar類來處理時間,Calendar類是一個抽象類,可以通過調用getInstance靜態方法獲得Calendar的一個對象,此對象默認由當前時間進行初始化,直接來一個簡單的實例:

復制代碼
 1 package com.imooc.collection;
 2 
 3 import java.util.Calendar;
 4 
 5 public class DateAction {
 6 
 7     public static void main(String[] args) {
 8         Calendar c = Calendar.getInstance();    //實例化Calendar對象
 9         int year = c.get(Calendar.YEAR);    //通過get方法獲得當前年
10         int month = c.get(Calendar.MONTH) + 1;    //月份0-11,需要加1
11         int day = c.get(Calendar.DAY_OF_MONTH);    //日期
12         int hour = c.get(Calendar.HOUR_OF_DAY);    //獲取小時
13         int minute = c.get(Calendar.MINUTE);    //獲取分鍾
14         int second = c.get(Calendar.SECOND);    //獲取秒數
15         System.out.println("當前時間:" + year + "年" + month + "月" + day + "日" + "   " + hour + 
16                 ":" + minute + ":" + second);
17     }
18 
19 }
復制代碼

這樣就打印出結果了:當前時間:2015年9月21日   22:12:13

Calendar還提供了getTime方法,用來獲取Date對象,實現Calendar和Date對象的互轉,還可以用getTimeInMillis獲得1970年01月01日0時0分0秒,到當前時間的毫秒數,大約是Unix時間戳的1000倍

簡單代碼如下:

1 Date date = c.getTime();    //對象轉換
2 Long time = c.getTimeInMillis();    //獲取至現在的毫秒數
3 System.out.println("當前時間:" + date);
4 System.out.println("當前毫秒數:" + time);

這樣就實現了轉換

  3、Java數學運算Math類

  Math類也是Java中做運算常用的類,在java.lang包中,這個系統會自動導入,這里簡單的記錄一下,常用的方法:

  

  直接看一個簡單的實例:

復制代碼
 1 public class MathAction {
 2 
 3     public static void main(String[] args) {
 4         double a = 12.86;
 5         int b = (int) a;    //強制類型轉換
 6         System.out.println("強制類型轉換:" + b);
 7         long c = Math.round(a);    //四舍五入
 8         System.out.println("四舍五入:" + c);
 9         double d = Math.floor(a);    //返回小於參數a的最大整數
10         System.out.println("小於a的最大整數:" + d);
11         double e = Math.ceil(a);    //返回大於參數a的最小整數
12         System.out.println("大於a的最小整數:" + e);
13         double x = Math.random();    //產生[0,1)區間內的隨機浮點數
14         System.out.println("默認隨機數:" + x);
15         int y = (int) (Math.random()*99);    //產生[0,99)區間內的隨機整數
16         System.out.println("0-99之間的隨機整數(不包括99):" + y);
17 
18     }
19 
20 }
復制代碼

  很容易理解的例子,效果如下:

 

 

  以上就是Java開發中經常用到的類和方法,以上主要就是包裝類、時間處理、數學計算這些


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM