帶你了解Java常用類小結(jié)
Java常用類
包裝類
由于Java語(yǔ)言中的基本類型不是面向?qū)ο?,并不具備?duì)象的性質(zhì),實(shí)際使用存在很多不便。Java在java.lang包中提供了八種基本類型對(duì)應(yīng)的包裝類,可以方便地將它們轉(zhuǎn)化為對(duì)象進(jìn)行處理,并且可以調(diào)用一些方法。Java中基本類型和包裝類的對(duì)應(yīng)關(guān)系如下表所示:
基本數(shù)據(jù)類型名稱 | 包裝類名稱 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
從JDK1.5版本開(kāi)始,引入了自動(dòng)裝箱和自動(dòng)拆箱的 概念。裝箱指的是將基本類型的值轉(zhuǎn)換成包裝類對(duì)象,拆包指的是將包裝類對(duì)象轉(zhuǎn)換成基本類型的值。自動(dòng)裝箱和拆箱在Java中很常見(jiàn),在賦值或者方法調(diào)用時(shí)都有可能發(fā)生。、
裝箱與拆箱基本操作代碼如下:
package com.Cuc.demo01; /** * 裝箱與拆箱 * @author ZpF */ public class BoxingAndUnBoxing { public static void main(String[] args) { Integer x=new Integer(10);//手動(dòng)裝箱 Integer y=11;//自動(dòng)裝箱 int m=x.intValue();//手動(dòng)拆箱 int n=y;//自動(dòng)拆箱 System.out.println(m); System.out.println(n); } }
自動(dòng)裝箱和拆箱雖然能使代碼變的簡(jiǎn)潔但也存在一些問(wèn)題,通過(guò)以下代碼進(jìn)行說(shuō)明。
package com.Cuc.demo01; /** * 自動(dòng)裝箱中的一個(gè)陷阱 * @author ZpF */ public class BoxingAndUnBoxing { public static void main(String[] args) { /** * Java會(huì)緩存-128-127的數(shù)值,在范圍內(nèi)會(huì)復(fù)用這個(gè)對(duì)象(內(nèi)存分配是同一個(gè)地址) */ Integer i1=10; Integer i2=10; System.out.println(i1==i2);//true i1和i2都指向內(nèi)存中同一地址,所以為同一對(duì)象 System.out.println(i1.equals(i2));//true /** * Java會(huì)緩存-128-127的數(shù)值,超過(guò)這一范圍會(huì)重新創(chuàng)建一個(gè)對(duì)象 */ Integer i3=210; Integer i4=210; System.out.println(i3==i4);//false System.out.println(i3.equals(i4));//true } }
包裝類中的常量
每一種包裝類都提供了一些常量,比較典型的常量有如下所示:
名稱 | 說(shuō)明 |
---|---|
MAX_VALUE | 最大值 |
MIN_VALUE | 最小值 |
SIZE | 以二進(jìn)制補(bǔ)碼的形式所占的位數(shù) |
BYTES | 以二進(jìn)制補(bǔ)碼形式所占的字節(jié)數(shù) |
TYPE | **類型的class對(duì)象 |
每一種不同的包裝類提供不同的常量,以上只是舉例其中部分進(jìn)行說(shuō)明,真正用到時(shí)還要具體分析。
包裝類的構(gòu)造方法
Integer類、Double類、Boolean類提供了兩種構(gòu)造方法。
以基本數(shù)據(jù)類型的值為入?yún)?chuàng)建對(duì)象。以String字符串為入?yún)?chuàng)建對(duì)象。
示例代碼如下:
package com.Cuc.demo01; /** * 包裝類的構(gòu)造方法 */ public class Consructor { public static void main(String[] args) { Integer i1=new Integer(10); Integer i2=new Integer("10"); Double i3=new Double(20.1); Double i4=new Double("20.1"); Boolean i5=new Boolean(true); Boolean i6=new Boolean("false"); } }
Character類只提供了一種構(gòu)造方法,以char字符為創(chuàng)建一個(gè)Character類對(duì)象。
package com.Cuc.demo01; /** * Character包裝類的構(gòu)造方法 */ public class Consructor { public static void main(String[] args) { Character i7=new Character('帥'); } }
包裝類中的常用方法
每一種包裝類都提供了許多常用方法,在具體需要時(shí)查閱相關(guān)資料選擇合適的方法。
Math類
Java中提供了Math類來(lái)處理復(fù)雜的數(shù)學(xué)運(yùn)算,如平方根、對(duì)數(shù)、三角函數(shù)、指數(shù)等。Math類中還提供了一些常用的數(shù)學(xué)常量,如PI、E等。Math類中的方法都被定義為static靜態(tài)方法,直接使用Math.method格式調(diào)用(method代表方法名)。Math類沒(méi)有構(gòu)造方法,也就是說(shuō)Math類不能實(shí)例化對(duì)象,因?yàn)閿?shù)學(xué)本身就是抽象的,沒(méi)有具體實(shí)例化對(duì)象。Math類是java.lang基礎(chǔ)包中提供的。
枚舉
枚舉類型在編程語(yǔ)言中很常見(jiàn),它是在JDK1.5版本引入的特性,是一種特殊的數(shù)據(jù)類型。枚舉類型將一系列含義相同、預(yù)先定義好的常量組合起來(lái),其中每個(gè)常量都各自有定義好的相同類型的值。
枚舉定義
Java中枚舉類型的定義格式如下:
public enum [枚舉類名]{ [枚舉值代碼塊] }
因?yàn)槊杜e和Class類一樣,都是需要被外部訪問(wèn)的,所以權(quán)限修飾符都是public;enum為枚舉類型的關(guān)鍵字;枚舉類的名稱與Class定義相同,一般為首字母大寫,因?yàn)楸硎镜氖浅A?,所以枚舉類型的字段一般為全大寫字母?!癧枚舉代碼塊]”中定義了每個(gè)枚舉值的名稱和內(nèi)容。
下面是一個(gè)關(guān)于顏色枚舉的定義的示例:
package com.Cuc.demo01; /** * 枚舉值定義 * @author ZpF */ public enum ColorEnum { RED,GREEN,YELLOW,BLUE; }
使用枚舉值可以直接通過(guò)“枚舉類名.枚舉值名”的方式來(lái)訪問(wèn)。
枚舉的常見(jiàn)方法
枚舉類型的對(duì)象繼承java.lang.Enum類。枚舉類型中的常見(jiàn)方法如下所示:
方法 | 功能描述 |
---|---|
values() | 將枚舉類型成員屬性按數(shù)組形式返回 |
valueOf() | 將普通字符轉(zhuǎn)換為枚舉對(duì)象 |
compareTo() | 比較兩個(gè)枚舉對(duì)象在定義時(shí)的前后順序 |
ordinal() | 獲取枚舉成員的索引位置 |
代碼示例:
package com.Cuc.demo01; /** * enum使用 * @author ZpF */ public class UseNum { public static void main(String[] args) { ColorEnum colorArray[]=ColorEnum.values(); for (int i = 0; i < colorArray.length; i++) { System.out.println("依次打印枚舉類型成員"+colorArray[i]); } System.out.println("RED和GREEN的比較結(jié)果為:"+ColorEnum.RED.compareTo(ColorEnum.GREEN)); for (int i = 0; i < colorArray.length; i++) { System.out.println("依次獲取枚舉類型成員索引位置:"+colorArray[i].ordinal()); } } }
運(yùn)行結(jié)果:
枚舉類型中也可以添加自定義的構(gòu)造方法,但是構(gòu)造方法必須是私有的,被關(guān)鍵字private修飾。
package com.Cuc.demo01; /** * 枚舉值定義 * @author ZpF */ public enum ColorEnum { RED("紅色"),GREEN("綠色"),YELLOW("黃色"),BLUE("藍(lán)色"); public String color; private ColorEnum() { } private ColorEnum(String color) { this.color = color; } }
package com.Cuc.demo01; /** * enum使用 * @author ZpF */ public class UseNum { public static void main(String[] args) { ColorEnum colorArray[]=ColorEnum.values(); for (int i = 0; i < colorArray.length; i++) { System.out.println("依次打印枚舉類型成員:"+colorArray[i].color); } } }
運(yùn)行結(jié)果:
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringBoot結(jié)合ProGuard實(shí)現(xiàn)代碼混淆(最新版)
這篇文章主要介紹了SpringBoot結(jié)合ProGuard實(shí)現(xiàn)代碼混淆(最新版),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10淺談?dòng)肧pringBoot實(shí)現(xiàn)策略模式
本文主要介紹了SpringBoot實(shí)現(xiàn)策略模式,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10使用Java實(shí)現(xiàn)動(dòng)態(tài)生成MySQL數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)動(dòng)態(tài)生成MySQL數(shù)據(jù)庫(kù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02intellij idea使用git stash暫存一次提交的操作
這篇文章主要介紹了intellij idea使用git stash暫存一次提交的操作,具有很好的參考價(jià)值希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02SpringBoot整合Mybatis自定義攔截器不起作用的處理方案
這篇文章主要介紹了SpringBoot整合Mybatis自定義攔截器不起作用的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09一文教會(huì)你使用jmap和MAT進(jìn)行堆內(nèi)存溢出分析
本文介紹關(guān)于jmap和MAT的使用來(lái)進(jìn)行堆內(nèi)存溢出分析,因?yàn)檫@個(gè)內(nèi)存溢出是我們手動(dòng)構(gòu)造出來(lái)的,查找比較簡(jiǎn)單,真的到了生產(chǎn)上面需要我們仔細(xì)排除2021-09-09