3.3 Java 中必須瞭解的常用類(常用工具類)
1、Java 中的包裝類
相信各位小夥伴們對基本資料型別都非常熟悉,例如 int、float、double、boolean、char 等。基本資料型別是不具備物件的特性的,比如基本型別不能呼叫方法、功能簡單。。。,為了讓基本資料型別也具備物件的特性, Java 為每個基本資料型別都提供了一個包裝類,這樣我們就可以像操作物件那樣來操作基本資料型別。
基本型別和包裝類之間的對應關係:
基本型別 | 對應的包裝類 |
---|---|
byte | Byte |
short | Short |
int | Interger |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
包裝類主要提供了兩大類方法:
將本型別和其他基本型別進行轉換的方法
將字串和本型別及包裝類互相轉換的方法
我們將在後面的小節逐步講解,表著急哦~~
public class HelloWorld {
public static void main(String[] args) {
// 定義int型別變數,值為86
int score1 = 86;
// 建立Integer包裝類物件,表示變數score1的值
Integer score2=new Integer(score1);
// 將Integer包裝類轉換為double型別
double score3=score2.doubleValue();
// 將Integer包裝類轉換為float型別
float score4=score2.floatValue();
// 將Integer包裝類轉換為int型別
int score5 =score2.intValue();
System.out.println("Integer包裝類:" + score2);
System.out.println("double型別:" + score3);
System.out.println("float型別:" + score4);
System.out.println("int型別:" + score5);
}
}
2、Java 中基本型別和包裝類之間的轉換
基本型別和包裝類之間經常需要互相轉換,以 Integer 為例(其他幾個包裝類的操作雷同哦):
Integer a=new Tnterger(3);//定義Interger包裝類物件,值為3
int b=a+5;//將物件和基本型別進行運算
在 JDK1.5 引入自動裝箱和拆箱的機制後,包裝類和基本型別之間的轉換就更加輕鬆便利了。
那什麼是裝箱和拆箱呢?我們分別來看下
裝箱:把基本型別轉換成包裝類,使其具有物件的性質,又可分為手動裝箱和自動裝箱
int i=10;//定義一個int基本型別值
Integer x=new Integer(i);//手動裝箱
Integer y =i;//自動裝箱
拆箱:和裝箱相反,把包裝類物件轉換成基本型別的值,又可分為手動拆箱和自動拆箱
Integer j=new Integer(8);//定義一個Integer包裝類物件,值為8
int m=j.intValue();//手動拆箱為int型別
int n=j;//自動拆箱為int型別
public class HelloWorld {
public static void main(String[] args) {
// 定義double型別變在 JDK1.5 引入自動裝箱和拆箱的機制後,包裝類和基本型別之間的轉換就更加輕鬆便利了。
那什麼是裝箱和拆箱呢?我們分別來看下
裝箱:把基本型別轉換成包裝類,使其具有物件的性質,又可分為手動裝箱和自動裝箱量
double a = 91.5;
// 手動裝箱
Double b = new Double(a);
// 自動裝箱
Double c =a;
System.out.println("裝箱後的結果為:" + b + "和" + c);
// 定義一個Double包裝類物件,值為8
Double d = new Double(87.0);
// 手動拆箱
double e = d.doubleValue();
// 自動拆箱
double f =d ;
System.out.println("拆箱後的結果為:" + e + "和" + f);
}
}
3、Java 中基本型別和字串之間的轉換
在程式開發中,我們經常需要在基本資料型別和字串之間進行轉換。
其中,基本型別轉換為字串有三種方法:
1、 使用包裝類的 toString() 方法
2、使用String類的 valueOf() 方法
3、 用一個空字串加上基本型別,得到的就是基本型別資料對應的字串
//將基本型別轉換為字串
int c=10;
String str1=Integer.toString(c);//方法一
String str2=String.valueOf(c);//方法二
String str3=c+"";//方法三
再來看,將字串轉換成基本型別有兩種方法:
1、 呼叫包裝類的 parseXxx 靜態方法
2、 呼叫包裝類的 valueOf() 方法轉換為基本型別的包裝類,會自動拆箱
//將字串轉換為基本型別
String str="8";
int d=Integer.parseInt(str);方法一
int e=Integer.valueOf(str);方法二
PS:其他基本型別與字串的相互轉化這裡不再一一列出,方法都類似
public class HelloWorld {
public static void main(String[] args) {
double m = 78.5;
//將基本型別轉換為字串
String str1 = Integer.toString(m) ;
System.out.println("m 轉換為String型後與整數20的求和結果為: "+(str1+20));
String str = "180.20";
// 將字串轉換為基本型別
Double a = Integet.parseInt(str) ;
System.out.println("str 轉換為double型後與整數20的求和結果為: "+(a+20));
}
}
4、使用 Date 和 SimpleDateFormat 類表示時間
在程式開發中,經常需要處理日期和時間的相關資料,此時我們可以使用 java.util 包中的 Date 類。這個類最主要的作用就是獲取當前時間,我們來看下 Date 類的使用:
Date d=new Date();//使用預設的構造方法建立Date物件
System.out.println(d);//輸出Date物件
使用 Date 類的預設無參構造方法建立出的物件就代表當前時間,我們可以直接輸出 Date 物件顯示當前的時間,顯示的結果如下:
Wed Jun 11 09:22:30 CST 2014
其中, Wed 代表 Wednesday (星期三), Jun 代表 June (六月), 11 代表 11 號, CST 代表 China Standard Time (中國標準時間,也就是北京時間,東八區)。
從上面的輸出結果中,我們發現,預設的時間格式不是很友好,與我們日常看到的日期格式不太一樣,如果想要按指定的格式進行顯示,如 2014-06-11 09:22:30 ,那該怎麼做呢?
此時就到了 java.text 包中的 SimpleDateFormat 類大顯身手的時候了!!可以使用 SimpleDateFormat 來對日期時間進行格式化,如可以將日期轉換為指定格式的文字,也可將文字轉換為日期。
-
使用 format() 方法將日期轉換為指定格式的文字
//建立Date物件,表示當前時間 Date d=new Date(); //建立SimpleDateFormat物件,指定目標格式 SipleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //呼叫format()方法,格式化時間,轉換為指定格式字串 String today=sdf.format(d); //輸出轉換後的字串 System.out.println(today);
程式碼中的 “yyyy-MM-dd HH:mm:ss” 為預定義字串, yyyy 表示四位年, MM 表示兩位月份, dd 表示兩位日期, HH 表示小時(使用24小時制), mm 表示分鐘, ss 表示秒,這樣就指定了轉換的目標格式,最後呼叫 **format() 方法將時間轉換為指定的格式的字串。
執行結果: 2014-06-11 09:55:48 **
- 使用 parse() 方法將文字轉換為日期
//建立日期格式的字串
String day="2014年02月14日10:30:25";
//建立SimpleDateFormat df=new SimpleDateFormat("yyyy年MM月d日 HH:MM:ss");
//呼叫parse()方法,將字串轉換為日期
Date date=df.parse(day);
//輸出轉換後的時間
System.out.println("當前時間:"+date);
程式碼中的 “yyyy年MM月dd日 HH:mm:ss” 指定了字串的日期格式,呼叫 **parse() **方法將文字轉換為日期。
執行結果:
當前時間:Fri Feb 14 10:30:25 CST 2014
一定要注意哦:
1、 呼叫 SimpleDateFormat 物件的 parse() 方法時可能會出現轉換異常,即 ParseException ,因此需要進行異常處理
2、 使用 Date 類時需要匯入 java.util 包,使用 SimpleDateFormat 時需要匯入 java.text 包
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloWorld {
public static void main(String[] args) throws ParseException {
// 使用format()方法將日期轉換為指定格式的文字
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 建立Date物件,表示當前時間
Date now=new Date();
// 呼叫format()方法,將日期轉換為字串並輸出
System.out.println(sdf1.format(now));
System.out.println(sdf2.format(now));
System.out.println(sdf3.format(now));
// 使用parse()方法將文字轉換為日期
String d = "2014-6-1 21:05:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 呼叫parse()方法,將字串轉換為日期
Date date =df.parse(day);
System.out.println(date);
}
}
5、Calendar 類的應用
Date 類最主要的作用就是獲得當前時間,同時這個類裡面也具有設定時間以及一些其他的功能,但是由於本身設計的問題,這些方法卻遭到眾多批評,不建議使用,更推薦使用 Calendar 類進行時間和日期的處理。
java.util.Calendar 類是一個抽象類,可以通過呼叫 getInstance()** **靜態方法獲取一個 Calendar 物件,此物件已由當前日期時間初始化,即預設代表當前時間,如 Calendar c = Calendar.getInstance();
那麼如何使用 Calendar 獲取年、月、日、時間等資訊呢?我們來看下面的程式碼:
Calendar c=Calendar,getInstance();//建立Calendar物件
int year=c.get(Calendar.YEAR);//獲取年
int month=c.get(Calendar.MONTH)+1;//獲取月份,0表示1月份
int day=c.get(Calendar.DAY_OF_MONTH);//獲取日期
int hour=c.get(Calendar.HOUR_OF_DAY);//獲取小時
int minute=c.get(Calendar.MINUTE);//獲取分鐘
int second=c.get(Calendar.SECOND);//獲取秒
System.out.println("當前時間:"+year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second);
其中,呼叫 Calendar 類的 getInstance() 方法獲取一個例項,然後通過呼叫 get() 方法獲取日期時間資訊,引數為需要獲得的欄位的值, Calendar.Year 等為 Calendar 類中定義的靜態常量。
執行結果:
當前時間:2014-6-11 11:13:50
Calendar 類提供了 getTime() 方法,用來獲取 Date 物件,完成 Calendar 和 Date 的轉換,還可通過 getTimeInMillis() 方法,獲取此 Calendar 的時間值,以毫秒為單位。如下所示:
Date date=c.getTime();//將Canlendar物件轉換為Date物件
Long time=c.getTimeInMillis();//獲取當前毫秒數
System.out.println("當前時間:"+date);
System.out.println("當前毫秒數:"+time);
執行結果:
當前時間:Wed Jun 11 11:26:59 CST 2014
當前毫秒數:1402457219381
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class HelloWorld {
public static void main(String[] args) {
// 建立Canlendar物件
Calendar c = Calendar.getInstance();
// 將Calendar物件轉換為Date物件
Date date = c.getTime();
// 建立SimpleDateFormat物件,指定目標格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 將日期轉換為指定格式的字串
String now = sdf.format(date);
System.out.println("當前時間:" + now);
}
}
6、使用 Math 類運算元據
Math 類位於 java.lang 包中,包含用於執行基本數學運算的方法, Math 類的所有方法都是靜態方法,所以使用該類中的方法時,可以直接使用類名.方法名,如: Math.round();
常用的方法:
返回值 | 方法名 | 解釋 |
---|---|---|
long | round() | 返回四捨五入後的整數 |
double | floor() | 返回小於引數的最大整數 |
double | ccell() | 返回大於引數的最大整數 |
double | random() | 返回[0,1)之間的隨機數浮點數 |
double a=12.81;//定義一個double型別變數
int b=(int)a;//將double型別強制轉換為int型別,去掉小數位
System.out.println("強制型別轉換:"+b);
long c=Math.round(a);//呼叫round方法,進行四捨五入
System.out.println("四捨五入:"+c);
double d=Math.floor(a);//呼叫floor方法,返回小於引數的最大整數
System.out.println("floor:"+d);
double e=Math.ceil(a);//呼叫ceil方法,返回大於引數的最小整數
System.out.println("ceil:"+e);
double x=Math.random();//呼叫random方法,產生[0,1)之間的隨機浮點數
System.out.println("隨機數:"+x);
int y=(int)(Math.random()*99);//呼叫random方法,產生[0,99)之間的隨機z整數
System.out.println("產生[0,99)之間的隨機整數:"+y);
執行結果:
強制型別轉換:12
四捨五入:13
floor:12.0
ceil:13.0
隨機數:0.42585849456602687
產生[0,99)之間的隨機整數:30
public class HelloWorld {
public static void main(String[] args) {
// 定義一個整型陣列,長度為10
int[] nums =new int[10]
//通過迴圈給陣列賦值
for (int i = 0; i < nums.length; i++) {
// 產生10以內的隨機數
int x = Math.random();
nums[i] = x;// 為元素賦值
}
// 使用foreach迴圈輸出陣列中的元素
for (int i = 0; i < nums.length; i++) {
System.out.print(num + " ");
}
}
}
相關文章
- java 常用工具類Java
- java常用工具類Java
- Java經典常用類總結(必須掌握!)Java
- java 常用工具類 (值得收藏)Java
- java 常用工具類 方法整理Java
- Java常用工具類方法整理Java
- 專案開發必備,常用工具類
- Java 常用工具類 Collections 原始碼分析Java原始碼
- 你必須知道的幾種java容器(集合類)Java
- Java必須掌握的Spring常用註解JavaSpring
- Java單元測試常用工具類小結Java
- Java集合類初步瞭解Java
- Java中Object類的常用方法JavaObject
- Java中Scanner類的常用方法Java
- Android常用工具類的封裝Android封裝
- 前端er必須知道的Git地址及常用工具地址前端Git
- Zookeeper必須瞭解的基礎
- 全網最全Flutter常用工具類Flutter
- Java常用類-Object類JavaObject
- JAVA常用類--Cleaner類Java
- JAVA中StringBuffer類常用方法詳解Java
- Java中String類的常用方法Java
- 【web安全】程式設計常用工具類Web程式設計
- Java 常用類Java
- Java常用類Java
- JAVA常用類--Runtime類Java
- Java 異常你必須瞭解的一些知識Java
- 技術乾貨:Java程式碼常用工具類整理歸納Java
- Java中StringBuffer類的常用方法Java
- Java中常用類之Object類JavaObject
- 有關WebSocket必須瞭解的知識Web
- 你必須瞭解Spring的生態Spring
- Java 開發, volatile 你必須瞭解一下Java
- 基類中定義的虛擬函式,子類中必須要覆蓋嗎?為什麼?函式
- commons-lang包常用工具類的基本使用
- Javaweb常用工具類及配置檔案備份JavaWeb
- 類unix系統下常用工具及命令(轉)
- 你必須瞭解的「架構」小歷史架構