學(xué)習(xí)了解#
- Java中的包裝類
- Java中基本類型和包裝類型之間的轉(zhuǎn)換
- Java中基本類型和字符串之間的轉(zhuǎn)換
- 使用Date和SimpleDateFormat類表示時(shí)間
- Calendar類的應(yīng)用
- 使用Math類操作數(shù)據(jù)
Java中的包裝類
在Java中,像int苏遥、float漂坏、double、boolean、char等辫塌≡海基本數(shù)據(jù)類型是不具備對(duì)象的特性的,比如基本類型不能調(diào)用方法圾另,功能簡(jiǎn)單霸株。。集乔。去件,為了讓基本數(shù)據(jù)類型也具備對(duì)象的特性坡椒,Java為每個(gè)借本數(shù)據(jù)類型都提供了一個(gè)包裝類,這樣就可以像操作對(duì)象來操作基本數(shù)據(jù)類型尤溜。
基本類型和包裝類之間的對(duì)應(yīng)關(guān)系:
包裝類主要提供了兩大類方法:
- 將本類型和其他基本類型進(jìn)行轉(zhuǎn)換的方法倔叼。
- 將字符串和基本類型及包裝類互相轉(zhuǎn)換的方法。
** 范例 Integer 包裝類的構(gòu)造方法**
范例Integer包裝類的常用方法:
** 示例**
public class WrapperClassTest {
public static void main(String[] args) {
int i = 2;//定義int類類型變量宫莱,值為2
Integer m = new Integer(5);//定義Integer包裝類對(duì)象丈攒,值為5
Integer n = new Integer("85");//定義Integer包裝類對(duì)象,值為85
}
}
Java中基本類型和包裝類之間的轉(zhuǎn)換##
基本類型和包裝類之間經(jīng)常需要轉(zhuǎn)換授霸,以Integer為例(其他幾個(gè)包裝類的操作雷同):
Integer a = new Integer(3);//定義Integer包裝類對(duì)象巡验,值為3
int b = a + 5;//將對(duì)象和基本類型進(jìn)行運(yùn)算
在JDK1.5引入自動(dòng)裝箱和拆箱的機(jī)制后,包裝類和基本類型之間的轉(zhuǎn)換就更加輕松便利了碘耳。
** 裝箱:**把基本類型轉(zhuǎn)換成包裝類显设,使其具有對(duì)象的性質(zhì),又可分為手動(dòng)裝箱和自動(dòng)裝箱辛辨。
示例
int i = 10;//定義一個(gè)int基本類型值
Integer x = new Integer(i);//手動(dòng)裝箱
Integer y = i;//自動(dòng)裝箱
拆箱:和裝箱相反捕捂,把包裝類對(duì)象轉(zhuǎn)換成基本類型的值,又可分為手動(dòng)拆箱和自動(dòng)拆箱斗搞。
Integer j = new Integer(8);//定義一個(gè)Integer包裝類對(duì)象指攒,值為8
int m = j.intValue();//手動(dòng)拆箱為int類型
int n = j;//自動(dòng)拆箱為int類型
Java中基本類型和字符串之間的轉(zhuǎn)換##
在程序開發(fā)中,我們經(jīng)常需要在基本數(shù)據(jù)類型之間進(jìn)行轉(zhuǎn)換榜旦。
其中幽七,基本類型轉(zhuǎn)換為字符串有三種方法:
- 使用包裝類的 toString()方法。
- 使用String類的valueOf()方法溅呢。
- 用一個(gè)字符串加上基本類型澡屡,得到的就是基本類型數(shù)據(jù)對(duì)應(yīng)的字符串。
** 示例 **
//將基本類型轉(zhuǎn)換為字符串
int c= 10;
String str1 = Integer.toString(c);//方法一
String str2 = String.valueOf(c);//方法二
String str3 = c + "";
將字符串轉(zhuǎn)換成基本類型有兩種方法:
- 調(diào)用包裝類的parseXxx靜態(tài)方法咐旧。
- 調(diào)用包裝類的valueOf(0方法轉(zhuǎn)換為基本類型的包裝類驶鹉,會(huì)自動(dòng)拆箱。
示例
//將字符串轉(zhuǎn)換為基本類型
String str = "8";
int d = Integer.parseInt(str);//方法一
int e = Integer.valueOf(str);//方法二
PS:其他基本類型與字符串的相互轉(zhuǎn)化都差不多
使用Date和SimpleDateFormat類表示時(shí)間##
在程序開發(fā)中铣墨,經(jīng)常需要處理日期和時(shí)間的相關(guān)數(shù)據(jù)室埋,此時(shí)我們可以使用java.util包中的Date類。這個(gè)類主要的作用就是獲取當(dāng)前時(shí)間伊约。
示例:Date類的使用:
Date d = new Date();//使用默認(rèn)的構(gòu)造方法創(chuàng)建Date對(duì)象
System.out.println(d);//輸出Date對(duì)象
使用Date類的默認(rèn)無慘構(gòu)造方法創(chuàng)建出的對(duì)象就代表當(dāng)前時(shí)間姚淆,我們可以直接輸出Date對(duì)象顯示當(dāng)前時(shí)間
輸出結(jié)果如下:
Wed Jul 05 09:24:04 CST 2017
由于使用Date類的默認(rèn)構(gòu)造方法創(chuàng)建出的對(duì)象輸出當(dāng)前日期的格式看著不大對(duì),此時(shí)可以使用SimpleDateFormat類大顯身手屡律!可以使用SimpleDateFormat類來對(duì)日期進(jìn)行格式化腌逢, 如可以將日期轉(zhuǎn)換為指定格式的文本,也可將文本轉(zhuǎn)換為日期超埋。
1搏讶、使用format()方法將日期轉(zhuǎn)換為指定格式的文本
示例
//創(chuàng)建Date對(duì)象佳鳖,表示當(dāng)前日期
Date d = new Date();
//創(chuàng)建SimpleDateFormat對(duì)象,指定目標(biāo)格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//調(diào)用format()方法媒惕,格式化日期系吩,轉(zhuǎn)換為指定格式字符串
String today = sdf.format(d);
//輸出轉(zhuǎn)換后的字符串
System.out.println(today);
代碼中的 “yyyy-MM-dd HH:mm:ss” 為預(yù)定義字符串, yyyy 表示四位年妒蔚, MM 表示兩位月份穿挨, dd 表示兩位日期, HH 表示小時(shí)(使用24小時(shí)制)面睛, mm 表示分鐘絮蒿, ss 表示秒,這樣就指定了轉(zhuǎn)換的目標(biāo)格式叁鉴,最后調(diào)用 format() 方法將時(shí)間轉(zhuǎn)換為指定的格式的字符串。
輸出
2017-07-05 09:40:00
2佛寿、使用parse()方法將文本轉(zhuǎn)換為日期
//創(chuàng)建Date對(duì)象
Date date = null;
//創(chuàng)建日期格式的字符串
String day = "2017年07月05日 09:43:25";
//創(chuàng)建SimpleDateFormat對(duì)象幌墓,指定字符串的日期格式
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:MM:SS");
//調(diào)用parse()方法,將字符串轉(zhuǎn)換為日期
try {
date = df.parse(day);
} catch (ParseException e) {
e.printStackTrace();
}
//輸出轉(zhuǎn)換后的時(shí)間
System.out.println("當(dāng)前時(shí)間:"+ date);
代碼中的 “yyyy年MM月dd日 HH:mm:ss” 指定了字符串的日期格式冀泻,調(diào)用 parse() 方法將文本轉(zhuǎn)換為日期常侣。
輸出
當(dāng)前時(shí)間:Sun Jul 05 09:00:00 CST 2020
一定要注意
- 調(diào)用SimpleDateFormat對(duì)象的parse()方法將可能會(huì)出現(xiàn)轉(zhuǎn)換異常,即ParseException弹渔,因此需要進(jìn)行異常處理胳施。
- 使用Date類時(shí)需要導(dǎo)入java.util包,使用SimpleDateFormat時(shí)需要導(dǎo)入java.text包
Calendar類的應(yīng)用##
Date類最主要的功能的作用就是獲取當(dāng)前時(shí)間肢专,同時(shí)這個(gè)類里面也具有設(shè)置時(shí)間以及一些其它的功能舞肆,但是由于本身的設(shè)計(jì)的問題,這些方法卻遭到眾多批評(píng)博杖,不建議使用椿胯,更推薦使用Calendar類進(jìn)行時(shí)間和日期的處理。
java.util.Calendar類是一個(gè)抽象類剃根,可以通過調(diào)用getInstance()靜態(tài)方法獲取一個(gè)Calendar對(duì)象哩盲,此對(duì)象已由當(dāng)前日期時(shí)間初始化,即默認(rèn)代表當(dāng)前時(shí)間狈醉,如 Calendar c = Calendar.getInstance();
獲取年廉油、月、日等時(shí)間信息的代碼如下:
import java.util.Calendar;
/**
* Created by 99479 on 2017/7/9.
*/
public class CalendarTest {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
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("當(dāng)前時(shí)間:"+year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second);
}
}
輸出
當(dāng)前時(shí)間:2017-6-9 8:48:57
其中苗傅,調(diào)用 Calendar 類的 getInstance() 方法獲取一個(gè)實(shí)例抒线,然后通過調(diào)用 get() 方法獲取日期時(shí)間信息,參數(shù)為需要獲得的字段的值金吗, Calendar.Year 等為 Calendar 類中定義的靜態(tài)常量十兢。
Calendar類提供了getTime()方法趣竣,用來獲取Date對(duì)象,完成Calendar和Date的轉(zhuǎn)化旱物,還可通過getTimelnMillis()方法遥缕,獲取此Calendar的時(shí)間值,已毫秒為單位
示例
import java.util.Calendar;
import java.util.Date;
/**
* Created by 99479 on 2017/7/9.
*/
public class CalendarGetDateTest {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
Date date = c.getTime(); //將Calendar對(duì)象轉(zhuǎn)換為Data對(duì)象
Long time =c.getTimeInMillis(); //獲取當(dāng)前毫秒數(shù)
System.out.println("現(xiàn)在的時(shí)間:"+date);
System.out.println("當(dāng)前的秒數(shù):"+time);
}
}
輸出
現(xiàn)在的時(shí)間:Sun Jul 09 08:54:03 CST 2017
當(dāng)前的秒數(shù):1499561643160
Math類操作數(shù)據(jù)##
Math類位于java.lang包中宵呛,包含用于執(zhí)行基本數(shù)學(xué)運(yùn)算方法单匣,Math類的所有方法都是靜態(tài)方法,所以使用該類中的方法時(shí)宝穗,可以直接使用類名.方法名户秤,如:Math.round();
常用方法:
示例
/**
* Created by 99479 on 2017/7/9.
*/
public class MathTest {
public static void main(String[] args) {
double a =12.81; //定義一個(gè)double類型變量
int b = (int)a;
System.out.println("強(qiáng)制類型轉(zhuǎn)換:"+b);
long c = Math.round(a); //調(diào)用round方法,進(jìn)行四舍五入
System.out.println("四舍五入:"+c);
double d = Math.floor(a); //調(diào)用floor方法逮矛,返回小于參數(shù)的最大整數(shù)
System.out.println("floor:"+d);
double e = Math.ceil(a); //調(diào)用ceil方法鸡号,返回大于參數(shù)的最小整數(shù)
System.out.println("ceil: "+e);
double x = Math.random(); //調(diào)用random方法,產(chǎn)生[0须鼎,1)之間的隨機(jī)浮點(diǎn)數(shù)
System.out.println("隨機(jī)數(shù):"+x);
int y = (int)(Math.random()*99); //產(chǎn)生[0鲸伴,99)之間的隨機(jī)整數(shù)
System.out.println("產(chǎn)生[0,99)之間的隨機(jī)整數(shù):"+y);
}
}
輸出
強(qiáng)制類型轉(zhuǎn)換:12
四舍五入:13
floor:12.0
ceil: 13.0
隨機(jī)數(shù):0.9158315213046924
產(chǎn)生[0晋控,99)之間的隨機(jī)整數(shù):18