Java中必須了解的常用類

學(xué)習(xí)了解#

  1. 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)系:

image.png

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

  1. 將本類型和其他基本類型進(jìn)行轉(zhuǎn)換的方法倔叼。
  • 將字符串和基本類型及包裝類互相轉(zhuǎn)換的方法。

** 范例 Integer 包裝類的構(gòu)造方法**

image.png

范例Integer包裝類的常用方法:

image.png

** 示例**

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)換為字符串有三種方法:

  1. 使用包裝類的 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)換成基本類型有兩種方法:

  1. 調(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

一定要注意

  1. 調(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();
常用方法:

Paste_Image.png

示例

/**
 * 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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末汞窗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子赡译,更是在濱河造成了極大的恐慌仲吏,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝌焚,死亡現(xiàn)場(chǎng)離奇詭異裹唆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)综看,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門品腹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人红碑,你說我怎么就攤上這事舞吭。” “怎么了析珊?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵羡鸥,是天一觀的道長。 經(jīng)常有香客問我忠寻,道長惧浴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任奕剃,我火速辦了婚禮衷旅,結(jié)果婚禮上捐腿,老公的妹妹穿的比我還像新娘。我一直安慰自己柿顶,他們只是感情好茄袖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘁锯,像睡著了一般宪祥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上家乘,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天蝗羊,我揣著相機(jī)與錄音,去河邊找鬼仁锯。 笑死耀找,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的业崖。 我是一名探鬼主播涯呻,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼腻要!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涝登,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤雄家,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后胀滚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趟济,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年咽笼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了顷编。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剑刑,死狀恐怖媳纬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情施掏,我是刑警寧澤钮惠,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站七芭,受9級(jí)特大地震影響素挽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜狸驳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一贪绘、第九天 我趴在偏房一處隱蔽的房頂上張望畔裕。 院中可真熱鬧堡纬,春花似錦、人聲如沸酥馍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽物喷。三九已至,卻和暖如春遮斥,著一層夾襖步出監(jiān)牢的瞬間峦失,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國打工术吗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尉辑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓较屿,卻偏偏與公主長得像隧魄,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子隘蝎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 1购啄、Java 中的包裝類 相信各位小伙伴們對(duì)基本數(shù)據(jù)類型都非常熟悉,例如 int嘱么、float狮含、double、boo...
    夏沫xx閱讀 2,166評(píng)論 0 4
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法曼振,類相關(guān)的語法几迄,內(nèi)部類的語法,繼承相關(guān)的語法冰评,異常的語法映胁,線程的語...
    子非魚_t_閱讀 31,598評(píng)論 18 399
  • 楊孜 你是活在無量山上的那只 兇猛的豹子吧?甲雅!母獸們用低吟淺唱 為你伴奏解孙,晚風(fēng)屏住鼻息圍著你游走 我似乎聽到了茶盞...
    楊孜閱讀 473評(píng)論 0 0
  • 今天是兒童節(jié),孩子的節(jié)日务荆,朋友圈里各種曬妆距,好像這一天每個(gè)人都變成了孩子,每一家的天使都在這一天閃亮登場(chǎng)函匕。我們家的寶...
    破繭之旅閱讀 362評(píng)論 2 1
  • 那日 我埋頭柜子里翻尋 卻偶拾一羽 不知何時(shí)飄落的記憶 候鳥寒去春來 蓋戳的信箋 一生只飛一次 捧起它 心微微戰(zhàn)栗...
    曉晨的空間閱讀 306評(píng)論 2 5