Java中常用的類(類型包裝類、System類盆昙、Math類羽历、Arrays類、BigInteger類淡喜、BigDecimal類)

一秕磷、基本類型包裝類

在實際開發(fā)中,往往需要將數(shù)據(jù)轉換成字符串類型進行存儲炼团,會根據(jù)需要轉換成指定的基本數(shù)據(jù)類型澎嚣,因此疏尿,Java將基本數(shù)據(jù)類型值封裝成了對象,提供了更多的操作基本數(shù)值的功能币叹,用于在基本數(shù)據(jù)類型和字符串之間進行轉換润歉。

1、8 種基本類型對應的包裝類

基本數(shù)據(jù)類型 對應的包裝類


?將字符串轉換成基本數(shù)據(jù)類型:parseXXX(String s);其中XXX表示基本數(shù)據(jù)類型颈抚,s 參數(shù)為可以轉換成基本類型的字符串踩衩,如果字符串無法轉換成基本類型,將會發(fā)生數(shù)字轉換的問題:NumberFormatException

eg:System.out.println(Integer.parseInt("123") + 2);? ? //打印結果為125


將基本類型轉換成字符串有3中方式

(1) 基本類型直接與“ ”相連接即可贩汉;eg:34 + “”

(2) 調用 String 的 valueOf 方法:String.valueOf(34);

(3) 調用包裝類中的 toString 方法:Integer.toString(34);

2驱富、基本類型和對象轉換

基本類型轉換成包裝對象(以 int 類型轉換integer 對象為例)

Integer a = new Integer(2);? ? //構造一個新分配的Integer對象,表示指定的int值

Integer b = new Integer("2");? ? //構造一個新分配的Integer對象匹舞,表示String參數(shù)所指向的int值

包裝對象轉換成基本類型(以 int 類型轉換integer 對象為例)

?int num = a.intValue();? ? //以int類型返回該Integer的值


3褐鸥、自動裝箱拆箱

自動拆箱:對象轉成基本數(shù)值

自動裝箱:基本數(shù)值轉成對象

Integer i = 4;? ? //自動裝箱,相當于Integer i = Integer.valueOf(4);

i = i + 5;? ? //等號右邊:將i對象轉成基本數(shù)值(自動拆箱) i.intValue() + 5; 加法運算完成后赐稽,再次裝箱叫榕,把基本數(shù)值轉成對象。

自動裝箱細節(jié)演示?:當數(shù)值在 byte 范圍時姊舵,進行自動裝箱晰绎,不會創(chuàng)建對象空間而是使用已有的空間

//手動轉換

Integer a = new Integer(3);

Integer b = new Integer(3);

System.out.println(a == b);? ? //false,地址空間不同

System.out.println(a.equals(b));? ? //true

//自動裝箱

Integer c = 127;

Integer d = 127;

System.out.println(c == d);? ? //true括丁,在byte范圍內自動裝箱使用已有空間

System.out.println(c.equals(d));? ? //true


二荞下、System 類

System 代表程序所在的系統(tǒng),提供了對應的一些系統(tǒng)屬性消息和系統(tǒng)操作史飞。System 類不能手動創(chuàng)建對象尖昏,因為構造方法被 private 修飾,組織外界創(chuàng)建對象构资。System 類中都是 static 方法抽诉,類名即可訪問。

System 類中常用的方法:

currentTimeMillis():獲取當前系統(tǒng)時間與1970年01月01日00:00點之間的毫秒差值

exit(int status):用來結束正在運行的Java程序吐绵,通常傳入 0 參數(shù)記為正常狀態(tài)掸鹅,其他為異常狀態(tài)

gc():用來運行 JVM 中的垃圾回收器,完成內存中垃圾的消除

getProperty(String key):用來獲取指定鍵(字符串名稱)中所記錄的系統(tǒng)屬性消息

arraycopy(Object src拦赠,int srcPos巍沙,Object dest,int desPos荷鼠,int length):從指定源數(shù)組中復制一個數(shù)組句携,復制從指定的位置開始,到目標數(shù)組的指定位置結束

三允乐、Math 類

Math 類是包含用于執(zhí)行基本數(shù)學運算的方法的數(shù)學工具類矮嫉,類似這樣的工具類削咆,代表能夠完成一系列功能的類,在使用他們時蠢笋,不用創(chuàng)建對象拨齐,該類中方法都為靜態(tài)方法。

Math 類中常用方法:

abs(double a):返回 double 值的絕對值

ceil(double a):返回結果為比參數(shù)值大的最小整數(shù)的 double 值

floor(double a):返回結果比參數(shù)值小的最大整數(shù)的 double 值

max(double a昨寞,double b):返回兩個參數(shù)中較大的值

min(double a瞻惋,double b):返回兩個參數(shù)中較小的值

pow(double a,double b):返回第一個參數(shù)的第二個參數(shù)次冪的值

random():產生一個大于等于0.0且小于1.0的double小數(shù)

round(double a):返回參數(shù)值四舍五入的結果

四援岩、Arrays 類

Arrays 類包含用來操作數(shù)組的各種方法歼狼,如果指定數(shù)組引用為 null,則訪問此類中的方法都會拋出空指針異常 NullPointerException享怀。

Arrays 類中常用方法:

sort(int[] a):將數(shù)組元素按數(shù)字升序排序

toString(int[] a):用來返回指定數(shù)組元素內容的字符串形式

binarySearch(int[] a):在有序數(shù)組中羽峰,查找給定元素出現(xiàn)的位置,沒有查到則返回-1(使用的是二分搜索法)

五添瓷、BigInteger 類

在Java中梅屉,long 型為最大的整數(shù)類型,如果超過了 long 型的數(shù)據(jù)鳞贷,就會被封裝成 BigInteger 對象坯汤,在?BigInteger 類中,實現(xiàn)四則運算都是方法來實現(xiàn)的悄晃,并不是采用運算符玫霎。

BigInteger 類的使用:

public static void main(String[] args) {

? ? //大數(shù)據(jù)封裝為BigInteger對象

? ? ? BigInteger big1 = new BigInteger("12345678909876543210");

? ? ? BigInteger big2 = new BigInteger("98765432101234567890");

? ? ? //add實現(xiàn)加法運算

? ? ? BigInteger bigAdd = big1.add(big2);

? ? ? //subtract實現(xiàn)減法運算

? ? ? BigInteger bigSub = big1.subtract(big2);

? ? ? //multiply實現(xiàn)乘法運算

? ? ? BigInteger bigMul = big1.multiply(big2);

? ? ? //divide實現(xiàn)除法運算

? ? ? BigInteger bigDiv = big2.divide(big1);

}

六凿滤、BigDecimal 類

在Java中妈橄,double 和 float 類型在運算中很容易丟失精度,造成數(shù)據(jù)的不準確性翁脆,可以使用 BigDecimal 類實現(xiàn)浮點數(shù)據(jù)的高精度運算

BigDecimal? 類的使用:

public static void main(String[] args) {

? ? //大數(shù)據(jù)封裝為BigDecimal對象

? ? BigDecimal big1 = new BigDecimal("0.09");

? ? BigDecimal big2 = new BigDecimal("0.01");

? ? //add實現(xiàn)加法運算

? ? BigDecimal bigAdd = big1.add(big2);


? ? BigDecimal big3 = new BigDecimal("1.0");

? ? BigDecimal big4 = new BigDecimal("0.32");

? ? //subtract實現(xiàn)減法運算

? ? BigDecimal bigSub = big3.subtract(big4);


? ? BigDecimal big5 = new BigDecimal("1.105");

? ? BigDecimal big6 = new BigDecimal("100");

? ? //multiply實現(xiàn)乘法運算

? ? BigDecimal bigMul = big5.multiply(big6);

}

對于浮點數(shù)據(jù)的除法運算,和整數(shù)不同,可能出現(xiàn)無限不循環(huán)小數(shù),因此需要對所需要的位數(shù)進行保留和選擇舍入模式

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末眷蚓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子反番,更是在濱河造成了極大的恐慌沙热,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罢缸,死亡現(xiàn)場離奇詭異篙贸,居然都是意外死亡,警方通過查閱死者的電腦和手機枫疆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門爵川,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人息楔,你說我怎么就攤上這事寝贡“桥” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵圃泡,是天一觀的道長碟案。 經常有香客問我,道長颇蜡,這世上最難降的妖魔是什么价说? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮澡匪,結果婚禮上熔任,老公的妹妹穿的比我還像新娘。我一直安慰自己唁情,他們只是感情好疑苔,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著甸鸟,像睡著了一般惦费。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抢韭,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天薪贫,我揣著相機與錄音,去河邊找鬼刻恭。 笑死瞧省,一個胖子當著我的面吹牛,可吹牛的內容都是我干的鳍贾。 我是一名探鬼主播鞍匾,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骑科!你這毒婦竟也來了橡淑?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤咆爽,失蹤者是張志新(化名)和其女友劉穎梁棠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斗埂,經...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡符糊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了呛凶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片男娄。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出沪伙,到底是詐尸還是另有隱情瓮顽,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布围橡,位于F島的核電站暖混,受9級特大地震影響,放射性物質發(fā)生泄漏翁授。R本人自食惡果不足惜拣播,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望收擦。 院中可真熱鬧贮配,春花似錦、人聲如沸塞赂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宴猾。三九已至圆存,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仇哆,已是汗流浹背沦辙。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讹剔,地道東北人油讯。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像延欠,于是被迫代替她去往敵國和親陌兑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內容