JAVA中分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型區(qū)別

一、基本數(shù)據(jù)類型:

byte:Java中最小的數(shù)據(jù)類型,在內(nèi)存中占8位(bit),即1個(gè)字節(jié),取值范圍-128~127,默認(rèn)值0

short:短整型,在內(nèi)存中占16位,即2個(gè)字節(jié),取值范圍-32768~32717,默認(rèn)值0

int:整型,用于存儲(chǔ)整數(shù),在內(nèi)在中占32位,即4個(gè)字節(jié),取值范圍-2147483648~2147483647,默認(rèn)值0

long:長整型,在內(nèi)存中占64位,即8個(gè)字節(jié)-263~263-1,默認(rèn)值0L

float:浮點(diǎn)型,在內(nèi)存中占32位,即4個(gè)字節(jié),用于存儲(chǔ)帶小數(shù)點(diǎn)的數(shù)字(與double的區(qū)別在于float類型有效小數(shù)點(diǎn)只有6~7位),默認(rèn)值0

double:雙精度浮點(diǎn)型,用于存儲(chǔ)帶有小數(shù)點(diǎn)的數(shù)字,在內(nèi)存中占64位,即8個(gè)字節(jié),默認(rèn)值0

char:字符型,用于存儲(chǔ)單個(gè)字符,占16位,即2個(gè)字節(jié),取值范圍0~65535,默認(rèn)值為空

boolean:布爾類型,占1個(gè)字節(jié),用于判斷真或假(僅有兩個(gè)值,即true、false),默認(rèn)值false

二、引用數(shù)據(jù)類型:

類、接口類型、數(shù)組類型、枚舉類型、注解類型。

區(qū)別:

基本數(shù)據(jù)類型在被創(chuàng)建時(shí),在棧上給其劃分一塊內(nèi)存,將數(shù)值直接存儲(chǔ)在棧上。

引用數(shù)據(jù)類型在被創(chuàng)建時(shí),首先要在棧上給其引用(句柄)分配一塊內(nèi)存,而對象的具體信息都存儲(chǔ)在堆內(nèi)存上,然后由棧上面的引用指向堆中對象的地址。

例如,有一個(gè)類Person,有屬性name,age,帶有參的構(gòu)造方法,

Person p = new Person("zhangsan",20);

在內(nèi)存中的具體創(chuàng)建過程是:

1.首先在棧內(nèi)存中位其p分配一塊空間;

2.在堆內(nèi)存中為Person對象分配一塊空間,并為其三個(gè)屬性設(shè)初值"",0;

3.根據(jù)類Person中對屬性的定義,為該對象的兩個(gè)屬性進(jìn)行賦值操作;

4.調(diào)用構(gòu)造方法,為兩個(gè)屬性賦值為"Tom",20;(注意這個(gè)時(shí)候p與Person對象之間還沒有建立聯(lián)系);

5.將Person對象在堆內(nèi)存中的地址,賦值給棧中的p;通過引用(句柄)p可以找到堆中對象的具體信息。

相關(guān)知識(shí):

靜態(tài)區(qū): 保存自動(dòng)全局變量和 static 變量(包括 static 全局和局部變量)。靜態(tài)區(qū)的內(nèi)容在總個(gè)程序的生命周期內(nèi)都存在,由編譯器在編譯的時(shí)候分配。

堆區(qū): 一般由程序員分配釋放,由 malloc 系列函數(shù)或 new 操作符分配的內(nèi)存,其生命周期由 free 或 delete 決定。在沒有釋放之前一直存在,直到程序結(jié)束,由OS釋放。其特點(diǎn)是使用靈活,空間比較大,但容易出錯(cuò)

棧區(qū): 由編譯器自動(dòng)分配釋放,保存局部變量,棧上的內(nèi)容只在函數(shù)的范圍內(nèi)存在,當(dāng)函數(shù)運(yùn)行結(jié)束,這些內(nèi)容也會(huì)自動(dòng)被銷毀,其特點(diǎn)是效率高,但空間大小有限

文字常量區(qū): 常量字符串就是放在這里的。 程序結(jié)束后由系統(tǒng)釋放。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,674評論 1 32
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,818評論 11 349
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,262評論 8 265
  • 今天明白了一個(gè)道理要自信,沒有啥比這重要的,不然你可能很脆弱,不要怕有很多不懂很正常,有些事敢于去質(zhì)疑,和他們沒有...
    三不主義閱讀 139評論 0 0
  • 01 朋友找我吐槽,說同事新給介紹了個(gè)相親對象,互加微信后想看看他朋友圈,了解下對方信息,誰知道對方的朋友圈最近一...
    筱雨若風(fēng)閱讀 877評論 0 1

友情鏈接更多精彩內(nèi)容