基本類型,或者叫做內(nèi)置類型,是JAVA中不同于類的特殊類型。
創(chuàng)新互聯(lián)是一家專業(yè)提供曲沃企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站制作、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為曲沃眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。Java中的簡單類型從概念上分為四種:實(shí)數(shù)、整數(shù)、字符、布爾值。但是有一點(diǎn)需要說明的是,Java里面只有八種原始類型,其列表如下:
實(shí)數(shù):double、float
整數(shù):byte、short、int、long
字符:char
布爾值:boolean
復(fù)雜類型和基本類型的內(nèi)存模型本質(zhì)上是不一樣的,簡單數(shù)據(jù)類型的存儲(chǔ)原理是這樣的:所有的簡單數(shù)據(jù)類型不存在“引用”的概念,簡單數(shù)據(jù)類型都是直接存儲(chǔ)在內(nèi)存中的內(nèi)存棧上的,數(shù)據(jù)本身的值就是存儲(chǔ)在??臻g里面,而Java語言里面只有這八種數(shù)據(jù)類型是這種存儲(chǔ)模型;而其他的只要是繼承于Object類的復(fù)雜數(shù)據(jù)類型都是按照J(rèn)ava里面存儲(chǔ)對象的內(nèi)存模型來進(jìn)行數(shù)據(jù)存儲(chǔ)的,使用Java內(nèi)存堆和內(nèi)存棧來進(jìn)行這種類型的數(shù)據(jù)存儲(chǔ),簡單地講,“引用”是存儲(chǔ)在有序的內(nèi)存棧上的,而對象本身的值存儲(chǔ)在內(nèi)存堆上的。
Java的簡單數(shù)據(jù)講解列表如下:
int:int為整數(shù)類型,在存儲(chǔ)的時(shí)候,用4個(gè)字節(jié)存儲(chǔ),范圍為-2,147,483,648到2,147,483,647,在變量初始化的時(shí)候,int類型的默認(rèn)值為0。(2的32次方)
short:short也屬于整數(shù)類型,在存儲(chǔ)的時(shí)候,用2個(gè)字節(jié)存儲(chǔ),范圍為-32,768到32,767,在變量初始化的時(shí)候,short類型的默認(rèn)值為0,一般情況下,因?yàn)镴ava本身轉(zhuǎn)型的原因,可以直接寫為0。
long:long也屬于整數(shù)類型,在存儲(chǔ)的時(shí)候,用8個(gè)字節(jié)存儲(chǔ),范圍為-9,223,372,036,854,775,808到9,223,372,036, 854,775,807,在變量初始化的時(shí)候,long類型的默認(rèn)值為0L或0l,也可直接寫為0。(2的64次方)
byte:byte同樣屬于整數(shù)類型,在存儲(chǔ)的時(shí)候,用1個(gè)字節(jié)來存儲(chǔ),范圍為-128到127,在變量初始化的時(shí)候,byte類型的默認(rèn)值也為0。
float:float屬于實(shí)數(shù)類型,在存儲(chǔ)的時(shí)候,用4個(gè)字節(jié)來存儲(chǔ),范圍為32位IEEEE 754單精度范圍,在變量初始化的時(shí)候,float的默認(rèn)值為0.0f或0.0F,在初始化的時(shí)候可以寫0.0。
double:double同樣屬于實(shí)數(shù)類型,在存儲(chǔ)的時(shí)候,用8個(gè)字節(jié)來存儲(chǔ),范圍為64位IEEE 754雙精度范圍,在變量初始化的時(shí)候,double的默認(rèn)值為0.0。
char:char屬于字符類型,在存儲(chǔ)的時(shí)候用2個(gè)字節(jié)來存儲(chǔ),因?yàn)镴ava本身的字符集不是用ASCII碼來進(jìn)行存儲(chǔ),是使用的16位Unicode字符集,它的字符范圍即是Unicode的字符范圍,在變量初始化的時(shí)候,char類型的默認(rèn)值為'u0000'。
boolean:boolean屬于布爾類型,在存儲(chǔ)的時(shí)候不使用字節(jié),僅僅使用1位來存儲(chǔ),范圍僅僅為0和1,其字面量為true和false,而boolean變量在初始化的時(shí)候變量的默認(rèn)值為false。
Integer是int的封裝類,里面有很多進(jìn)行處理的靜態(tài)方法
Integer是對象而int不是,內(nèi)存的分配位置也不一樣
int是一種基本數(shù)據(jù)類型,而Integer是相應(yīng)于int的類類型,稱為對象包裝。
實(shí)現(xiàn)這種對象包裝的目的主要是因?yàn)轭惸軌蛱峁┍匾姆椒?,用于?shí)現(xiàn)基本數(shù)據(jù)類型的數(shù)值與可打印字符串之間的轉(zhuǎn)換,以及一些其他的實(shí)用程序方法;
另外,有些數(shù)據(jù)結(jié)構(gòu)庫類只能操作對象,而不支持基本數(shù)據(jù)類型的變量,包裝類提供一種便利的方式,能夠把基本數(shù)據(jù)類型轉(zhuǎn)換成等價(jià)的對象,從而可以利用數(shù)據(jù)結(jié)構(gòu)庫類進(jìn)行處理。
int 是基本類型,(int)(Math.Random()*100)就是一個(gè)數(shù),可以進(jìn)行加見乘除。 Integer是class ,那么 new Integer(temp)就是一個(gè)對象了,可以用到Integer這個(gè)class的方法,例如用intvalue()可以返回這個(gè)int的值。int a=1;這是基本數(shù)據(jù)類型是能參與運(yùn)算的.而Integer b= new
Integer(1);c=b.floatvalue;Float a= new Float(null);是可以的用Float初始化一個(gè)對象這個(gè)a有很多方法而float a;就沒有因?yàn)樵紱]有引用類,java 提供兩種不同的類型:引用類型(或者封裝類型,Warpper)和原始類型(或內(nèi)置類型,Primitive)。Int是java的原始數(shù)據(jù)類型,Integer是java為int提供的封裝類。Java為每個(gè)原始類型提供了封裝類。
原始類型 封裝類
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),當(dāng)引用類型和原始類型用作某個(gè)類的實(shí)例數(shù)據(jù)時(shí)所指定的缺省值。對象引用實(shí)例變量的缺省值為 null,而原始類型實(shí)例變量的缺省值與它們的類型有關(guān)。
1 、Boolean VS boolean
public final class Boolean extends Object
implementsSerializable,Comparable
Boolean 類將基本類型為boolean的值包裝在一個(gè)對象中。一個(gè)Boolean類型的對象只包含一個(gè)類型為boolean的字段。此外,此類還為boolean和String的相互轉(zhuǎn)換提供了許多方法,并提供了處理 boolean時(shí)非常有用的其他一些常量和方法。
2、 Byte VS byte
public final class Byte extends Number implements Comparable
Byte類將基本類型 byte的值包裝在一個(gè)對象中。一個(gè)Byte類型的對象只包含一個(gè)類型為 byte的字段。此外,該類還為 byte和 String的相互轉(zhuǎn)換提供了幾種方法,并提供了處理 byte時(shí)非常有用的其他一些常量和方法。
3、 Character VS char
public final class
Character extends Object implements Serializable,
Comparable
Character類在對象中包裝一個(gè)基本類型char的值。
Character類型的對象包含類型為char的單個(gè)字段。此外,該類提供了幾種方法,以確定字符的類別(小寫字母,數(shù)字,等等),并將字符從大寫轉(zhuǎn)換成小寫,反之亦然。
4 、Double VS double
public final class Double extends Number implements
Comparable
Double類在對象中包裝了一個(gè)基本類型double的值。每個(gè)Double類型的對象都包含一個(gè)double類型的字段。此外,該類還提供了多個(gè)方法,可以將double轉(zhuǎn)換為String,將String轉(zhuǎn)換為double,還提供了其他一些處理double時(shí)有用的常量和方法。
5、 Float VS float
public final class Float extends Number implements
Comparable
Float類在對象中包裝了一個(gè)float基本類型的值。Float類型的對象包含一個(gè)float類型的字段。此外,此類提供了幾種方法,可在float類型和String類型之間互相轉(zhuǎn)換,并且還提供了處理float類型時(shí)非常有用的其他一些常量和方法。
6、 Integer VS int
public final class
Integer extends Number implements Comparable
Integer類在對象中包裝了一個(gè)基本類型int的值。Integer類型的對象包含一個(gè)int類型的字段。
此外,該類提供了多個(gè)方法,能在int類型和String類型之間互相轉(zhuǎn)換,還提供了處理int類型時(shí)非常有用的其他一些常量和方法。
7 Long VS long
public final class Long extends Number implements Comparable
Long類在對象中封裝了基本類型long的值。每個(gè)Long類型的對象都包含一個(gè)long類型的字段。
此外,該類提供了多個(gè)方法,可以將long轉(zhuǎn)換為String,將String轉(zhuǎn)換為long,除此之外,還提供了其他一些處理long時(shí)有用的常量和方法。
8、 Short VS short
public final class Short extends Number implements Comparable
Short類在對象中包裝基本類型short的值。一個(gè)Short類型的對象只包含一個(gè)short類型的字段。另外,該類提供了多個(gè)方法,可以將short轉(zhuǎn)換為String,將String轉(zhuǎn)換為short,同時(shí)還提供了其他一些處理short時(shí)有用的常量和方法。
9、public final class Voidextends Object
Void 類是一個(gè)不可實(shí)例化的占位符類,它保持一個(gè)對代表 Java 關(guān)鍵字 void 的 Class 對象的引用。
類的對象才能為null,不能把null賦值給一個(gè)變量不能,如int m=null;但可以String s=null;因?yàn)镾tring是個(gè)類。