更新時間:2019-09-18 14:43:40 來源:動力節點 瀏覽4113次
今天動力節點JAVA培訓機構小編為大家介紹java基本數據類型和引用數據類型的區別,希望通過此文大家能夠掌握java基本數據類型和引用數據類型的區別,下面就隨小編一起來了解一下java基本數據類型和引用數據類型的區別。
一、java基本數據類型
byte:Java中最小的數據類型,在內存中占8位(bit),即1個字節,取值范圍-128~127,默認值0
short:短整型,在內存中占16位,即2個字節,取值范圍-32768~32767,默認值0
int:整型,用于存儲整數,在內在中占32位,即4個字節,取值范圍-2147483648~2147483647,默認值0
long:長整型,在內存中占64位,即8個字節-2^63~2^63-1,默認值0L
float:浮點型,在內存中占32位,即4個字節,用于存儲帶小數點的數字(與double的區別在于float類型有效小數點只有6~7位),默認值0
double:雙精度浮點型,用于存儲帶有小數點的數字,在內存中占64位,即8個字節,默認值0
char:字符型,用于存儲單個字符,占16位,即2個字節,取值范圍0~65535,默認值為空
boolean:布爾類型,占1個字節,用于判斷真或假(僅有兩個值,即true、false),默認值false
二、java引用數據類型
類、接口類型、數組類型、枚舉類型、注解類型。
java基本數據類型和引用數據類型的區別
基本數據類型在被創建時,在棧上給其劃分一塊內存,將數值直接存儲在棧上。
引用數據類型在被創建時,首先要在棧上給其引用(句柄)分配一塊內存,而對象的具體信息都存儲在堆內存上,然后由棧上面的引用指向堆中對象的地址。
例如,有一個類Person,有屬性name,age,帶有參的構造方法,
Person p = new Person("zhangsan",20);
在內存中的具體創建過程是:
1、首先在棧內存中位其p分配一塊空間;
2、在堆內存中為Person對象分配一塊空間,并為其三個屬性設初值"",0;
3、根據類Person中對屬性的定義,為該對象的兩個屬性進行賦值操作;
4、調用構造方法,為兩個屬性賦值為"Tom",20;(注意這個時候p與Person對象之間還沒有建立聯系);
5、將Person對象在堆內存中的地址,賦值給棧中的p;通過引用(句柄)p可以找到堆中對象的具體信息。
相關知識:
靜態區: 保存自動全局變量和 static 變量(包括 static 全局和局部變量)。靜態區的內容在總個程序的生命周期內都存在,由編譯器在編譯的時候分配。
堆區: 一般由程序員分配釋放,由 malloc 系列函數或 new 操作符分配的內存,其生命周期由 free 或 delete 決定。在沒有釋放之前一直存在,直到程序結束,由OS釋放。其特點是使用靈活,空間比較大,但容易出錯。
棧區: 由編譯器自動分配釋放,保存局部變量,棧上的內容只在函數的范圍內存在,當函數運行結束,這些內容也會自動被銷毀,其特點是效率高,但空間大小有限。
文字常量區: 常量字符串就是放在這里的。 程序結束后由系統釋放。
以上就是動力節點java培訓機構小編介紹的“java基本數據類型和引用數據類型的區別”的內容,希望對大家有幫助,更多java最新資訊請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。
相關免費視頻教程推薦
java后端開發視頻教程下載——java引用數據類型進行賦值:http://m.dabaquan.cn/xiazai/2622.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習