JAVA基礎:常混淆的兩種類型(基本資料和引用資料)
在學習 JAVA基礎時,相信大家跟我一樣,總是把基本資料型別和引用資料型別混淆,要怎麼區分它們呢?我總結了它們各自的特色供大家參考。
一. 基本資料型別
byte:Java中最小的資料型別,在記憶體中佔8位(bit),即1個字節,取值範圍-128~127,預設值0
short:短整數型,在記憶體中佔16位,即2個字節,取值範圍- 32768~32717,預設值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
二.引用資料類型
類別
介面類型
##陣列類型
枚舉類型
註解類型
#三. 區別
##三. 區別
基本資料型別在被創建時,在堆疊上給其劃分一塊內存,將數值直接儲存在堆疊上。
引用資料型別在被建立時,首先要在堆疊上給其引用(句柄)分配一塊內存,而物件的具體資訊都儲存在堆記憶體上,然後由棧上面的引用指向堆中物件的位址。
例如,有一個類別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基礎:常混淆的兩種類型(基本資料和引用資料)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...
